2D数组来自文本输入,中间有空格
2D Array from text input with space inbetween
给定的文本输入
Car 23 1
Pencil 54 12
Draw
Ball 12
我想打印成2D矢量,例如:
vector<vector<string>> final_vec = {{Car,23,1},{Pencil,54,12},{Draw},{Ball,12}}
以下是我迄今为止所尝试的:
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
using std::cout; using std::endl;
using std::ifstream;
using std::vector;
using std::string;
void read_file(const string &fname) {
ifstream in_file(fname);
string token, line;
vector<string> temp_vec;
vector<vector<string>> final_vec;
while ( getline(in_file, line) ) { //for each line in file
while( in_file >> token ) { //for each element in line
in_file >> token;
temp_vec.push_back(token);
}
final_vec.push_back(temp_vec);
temp_vec.clear();
}
for(vector<string> vec:final_vec) {
for(string ele:vec) {
cout << ele << endl;
}
}
}
int main() {
read_file("text.txt"); //insert your file path here
}
但我只能将每个单独的字符串元素存储到一个向量中。我怎么能取一整条线,把每个元素分割成一个向量,然后取整个向量形成一个2D向量?
您有了基本结构,只需要创建字符串流并将其用于提取:
while (getline(in_file, line)) {
stringstream ss(line);
vector<string> temp_vec;
string str;
while (ss >> str) {
temp_vec.push_back(str);
}
final_vec.push_back(temp_vec);
}
相关文章:
- 2D数组来自文本输入,中间有空格
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 如何在C++中读取空格分隔的输入 当我们不知道输入的数量时
- 如何在c++中使用system()来运行包含空格的python脚本
- basic_string的前导/尾部不区分空格的特征
- 移除前面有空格的前2个字符串
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- 为什么 c++(g++) 不允许模板返回类型和函数名称之间有空格?
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 在字符串中插入空格
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- C++为一串单词添加空格
- 使用另一个字符串从字符串中删除空格
- 递归形成字符串中所有数字字符的中间和?
- 我还可以添加什么来按空格或空格正确拆分C++字符串?
- C++ [std::regex] 尝试仅匹配中间有空格的数字
- 我正在尝试在字符数组的中间添加一个空格.不确定如何正确移动它
- 为什么 c++ 编译器在中间放置空格时不输出下一行的文本?