-3

次のように、複数の行と列を持つテキスト ファイルがあります。

 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()ましたが、これまでのところ成功していません。

4

1 に答える 1

2

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 );
        }
    }
}

免責事項: コードはコンパイラの手によって触れられておらず、すべてのエラー チェックなどは省略されています。

于 2013-02-21T01:47:07.157 に答える