嗨,我目前寫了一個程序,但我在閱讀文件時遇到問題。它似乎讀了最後一行兩次,結果,兩次產生相同的結果。輸入文件讀取錯誤
我已經把getline()函數讀取第一行,以便存儲變量G的字符串。其餘的,我已經將它存儲在類對象的向量中。
基本的文件被打開,它會執行這個循環
file.open("bodies1.txt");
getline(file, G1);
....
while(!file.eof)
{
file >> body;
bodies.push_back(body);
}
這是文本文件的樣子(這只是一個樣本。沒有實際的東西)
0.02932
Sun 32 42 53 2 2
Moon 49 32 4 2 1
Jupiter 32 53 2 3 2
我真的想知道爲什麼它讀了兩次最後一行。有什麼建議麼?
@JesseGood我同意EOF是問題,但我不確定這個問題是否是該問題的重複。這個答案將解決他們的問題。 – AlexLordThorsen 2013-04-30 20:23:55
@Rawrgulmuffins:與C++反模式相關的問題'while(!file.eof)'很常見。查看有多少重複鏈接到該問題。 – 2013-04-30 20:34:26