0

このコードを実行すると:

for (int i = 0; i < indexArray.size(); i++) {

                iss.str(indexArray.at(i));
                iss>>one;
                iss>>two;
                iss>>three;
                cout<<one<<" "<<two<<" "<<" "<<three<<" "<<"\n";
}

istreamstream (iss) は、すべての反復で同じままです。(ファイルは、プログラムの開始時にベクトルに読み込まれます。はい、配列に対応するデータがあることを確認しました。)

つまり、次の出力が得られます。

12345 1  0 
12345 1  0 
12345 1  0 

一方、ファイル/ベクターは実際には次のように言っています:

12345 1 0
12346 1 25
12543 1 50

さまざまなトレースを試しましたが、問題を特定できません。ありがとう!

4

1 に答える 1

1

iss.clear();を再利用するときは、前に呼び出しiss.str(indexArray.at(i));て EOF フラグをクリアする必要がありますistringstream

于 2015-05-31T04:16:18.243 に答える