次のように、複数の行と列を持つテキスト ファイルがあります。
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 );
}
}
}
免責事項: コードはコンパイラの手によって触れられておらず、すべてのエラー チェックなどは省略されています。