所以我有这个问题。如何使用循环读取未知文件大小?
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