【发布时间】:2017-01-29 21:45:23
【问题描述】:
我正在编写一个从文本文件中获取多个变量的程序。
当程序找到EOF时,
它结束输入数据。
int main()
{
int val, count = 0;
ifstream fileIn;
fileIn.open("num.txt");
fileIn >> val;
while (fileIn)
{
++count;
cout << "number: " << val << endl;
fileIn >> val;
}
cout << "count: " << count << endl;
fileIn.close();
return 0;
}
num.txt 文件:11 22 33 44
程序输出:
number: 11
number: 22
number: 33
number: 44
count: 4
一切正常。但是,如果我将 while 条件部分从 fileIn 更改为 fileIn.good(),
程序输出将如下所示:
number: 11
number: 22
number: 33
count: 3
它现在跳过最后一个值。
为什么会发生这种情况,fileIn 之间有什么区别
和fileIn.good()?
【问题讨论】: