次のように、複数の行と列を持つテキスト ファイルがあります。
234 567 890 4523
12 34
78 23 432
a[0][0] = 234
それらを、 that 、 whileなどの配列に読み込みたいと思いa[1][0] = 12
ます。を使用してそれらをすべて 1 次元にできますがinput >> a[i]
、2 次元配列にしたいと思います。使用してみgetline()
ましたが、これまでのところ成功していません。
次のように、複数の行と列を持つテキスト ファイルがあります。
234 567 890 4523
12 34
78 23 432
a[0][0] = 234
それらを、 that 、 whileなどの配列に読み込みたいと思いa[1][0] = 12
ます。を使用してそれらをすべて 1 次元にできますがinput >> a[i]
、2 次元配列にしたいと思います。使用してみgetline()
ましたが、これまでのところ成功していません。
std::vector
のを使用できますstd::vector
。
行ごとに、各番号を読み取り、それを使用push_back
して関連するベクトル (配列) の末尾にコピーします。
を使用して、入力行を表す文字列から読み取ることができますstd::istringstream
。
std::string
あなたが指摘したように、を使用して、1行の入力を に読み込むことができますstd::getline
。
疑似コードでは次のようになります
void foo()
{
std::vector< std::vector< int > > numbers;
std::string line;
while( getline( cin, line ) )
{
std::istringstream stream( line );
numbers.push_back( std::vector<int>() );
std::vector<int>& v = numbers.back();
int number;
while( stream >> number )
{
v.push_back( number );
}
}
}
免責事項: コードはコンパイラの手によって触れられておらず、すべてのエラー チェックなどは省略されています。