使用fstream将文件逐行读取到C++中的二维向量中[重复]
Posted
技术标签:
【中文标题】使用fstream将文件逐行读取到C++中的二维向量中[重复]【英文标题】:Read file line by line using fstream into a 2d vector in C++ [duplicate] 【发布时间】:2020-11-06 17:38:55 【问题描述】:input.txt文件的内容是:
45 15 87 12
12 48 878 7
11 25 85 44
注意:每行最后一个数字与换行符之间没有空格。 如何读取文件并将其内容存储为代表矩阵的二维向量。向量应如下所示:
vector<vector<int>> vect
45 15 87 12,
12 48 878 7,
11 25 85 44
;
描述一个 3x4 矩阵
【问题讨论】:
【参考方案1】:编辑:经过测试和工作
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main()
istringstream input(R"(45 15 87 12
12 48 878 7
11 25 85 44)");
vector<vector<int>> vect;
// go through each line of file
string line;
while (getline(input, line))
istringstream line_ss(line);
vector<int> row;
// go through each number on line
for (int element; line_ss >> element;)
// insert number into row
row.push_back(element);
// insert row into vect
vect.push_back(row);
cout << "done" << endl;
应该希望是非常自我解释的,我使用 istringstream 而不是 ifstream 但两者都应该工作。如果您需要任何部分的解释,请告诉我。
编辑:其他人已将此链接到具有类似解决方案的帖子,因此请使用该帖子获取更多信息,并且似乎可以进行更多解释。
【讨论】:
以上是关于使用fstream将文件逐行读取到C++中的二维向量中[重复]的主要内容,如果未能解决你的问题,请参考以下文章