所以我有這個問題。如何使用循環讀取未知文件大小?
78 78史密斯喬
67個69個莫里斯馬克
65 88金博爾克雷格:當數據看起來像這樣
「寫一個完整的程序來讀取文件名爲數據‘ingolf.txt’
...
73 75丹尼森大衛
,其中3個點表示數據」
多行這是我用來讀取文件的循環。
string line;
while(getline(dataFile, line)) {
dataFile >> round1;
dataFile >> round2;
dataFile >> firstName;
dataFile >> lastName;
cout << round1 << " ";
cout << round2 << " ";
cout << firstName << " ";
cout << lastName << " ";
}
當我使用此循環時,它會重複最後一個文件行兩次。難道我做錯了什麼? 在此之前我使用了eof(),它工作但我讀了這是不好的做法,所以我找到了這個循環來代替。我也不確定爲什麼我需要這個變量。該文件是未知的大小。我是初學者所以請小白友好地解釋:d
使用'fscanf'函數,而不是 – 2014-11-03 20:51:10
'而(函數getline(數據文件,行)'看起來不錯,到目前爲止,可以請你給出一個更完整的[最少的樣品(http://stackoverflow.com/help/mcve)這再現了這個問題嗎? – 2014-11-03 20:51:48
@MaciejBaranowski爲什麼這麼做?fscanf()優於'getline()',請詳細解釋! – 2014-11-03 20:53:07