我是在 C++ 中使用向量的新手,我的目标是从文本文件中读取一个矩阵并将它们存储到一个二维向量中,我的代码如下:
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int main()
{
std::ifstream in("input.txt");
std::vector<std::vector<int> > v;
if (in) {
std::string line;
while (std::getline(in, line)) {
v.push_back(std::vector<int>());
// Break down the row into column values
std::stringstream split(line);
int value;
while (split >> value)
v.back().push_back(value);
}
}
for (int i = 0; i < v.size(); i++) {
for (int j = 0; j < v[i].size(); j++)
std::cout << v[i][j] << ' ';
std::cout << '\n';
}
}
现在输入说
10101010
01010101
10101011
01011010
我得到一个输出
10101010
1010101
10101011
1011010
即,每次在行首遇到 0 时,都会将其省略。我相信问题出在语句 while(split>>value) 中,但我不知道如何以更好的方式对其进行编码。