にマトリックスのロード、私の目標は、テキストファイルから行列を読み込むと2Dベクターにそれらを格納することで、次のように私のコードは次のとおりです。は、私はC++でのベクターを使用してに新しいです2Dベクトル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の初めに遭遇され得ますそれは省略されています。私は問題がステートメント(スプリット>>値)中にあると信じていますが、それをより良い方法でコーディングする方法はわかりません。
リーディング0は整数に何も意味しないので、それらは破棄されます。なぜ文字列を保存しないのですか? – NathanOliver
私はそれが問題であると信じています。なぜなら、0は論理的な偽であり、無視されているからです。 –
入力ファイルの文字列を文字列で取ったのは、文字単位で読み込むよりも速いからですが、後で行列演算を適用して整数として保存したいのです。 –