📅  最后修改于: 2023-12-03 15:39:26.560000             🧑  作者: Mango
在C++中,文件标准输入输出流ios
提供了很多函数用于操作输入输出流。其中,eof()
函数用于检测输入流是否已经结束。如果已经结束,该函数返回true;否则,返回false。
ios.eof()
如果输入流结束,该函数返回true;否则,返回false。
下面是一个示例程序,实现了从文件中读取整数并计算它们的和:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream infile("data.txt");
int num, sum = 0;
while(infile >> num) {
sum += num;
}
infile.close();
cout << "The sum is " << sum << endl;
if(infile.eof()) {
cout << "End of file reached." << endl;
}
return 0;
}
代码解释:
data.txt
,并创建文件输入流infile
;num
和sum
,用于存储当前读取到的数字和计算它们的和;while
循环,从输入流中读取整数,并将它们累加到变量sum
中;infile
;sum
;假设文件data.txt
中包含以下内容:
1
2
3
则程序输出为:
The sum is 6
End of file reached.
eof()
函数检测的是上一次文件读取的状态,而不是下一次文件读取的状态;eof()
函数时,应先使用其他输入输出流操作函数(如>>
、getline()
等)读取文件中的数据。如果先调用eof()
函数,可能会返回错误的结果;