我是新來的C++使用的載體,我的目標是從文本文件中讀取一個矩陣,並將它們存儲到一個二維矢量,我的代碼如下:加載矩陣爲二維向量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(分割>>值),但我不知道如何以更好的方式編碼。
引導0對於一個整數意味着什麼,所以它們被丟棄。爲什麼不直接存儲字符串? – NathanOliver
我認爲這是問題,因爲0是一個邏輯錯誤,它是ommited,所以我如何修復代碼以包含它? –
我用字符串取得輸入文件的字符串,因爲它比逐個字符地讀取它的速度快,但我想稍後應用矩陣運算,因此我希望它們以整數形式存儲。 –