3

getline()を使用するのはこれが初めてで、何か問題があると思います。これが私のコードです:

ifstream file ("new2.csv");
string val;
while (file.good())
{
    getline (file,val);
}
cout<<val;

csvファイルの行数に関係なく、出力は常にcsvファイルの最後の行になります。

私のcsvファイルは単純な区切りファイルです。お気に入り:

cat,dog,a,b,c,hello,world
monkey,flower,text,word

getlineはcsvファイルの最初の行を読み取ることになっていると思いますが、この場合、出力は次のようになります。monkey,flower,text,word

これは、csvファイルの任意の数の行で発生します。私はこれをしているかもしれないものを見つけることができません。私を助けてください。ありがとう。

4

2 に答える 2

2

もちろん、coutはループの外側を印刷し、すべての行の読み取りが終了した後に最後の行を印刷するため、ファイルから読み取られた最後の行のみが印刷されます。

代わりにこれを書くべきです:

ifstream file ("new2.csv");
string val;
while (file.good())
{
    getline (file,val);
    cout<< val << endl;
}
于 2012-12-25T12:22:26.990 に答える
1
while (file.good())
{
    getline (file,val);
}
cout<<val;

あなたcoutはループの外にいるので、最後の行だけを印刷します。

于 2012-12-25T12:20:47.957 に答える