📜  带有示例的C++中的ios eof()函数(1)

📅  最后修改于: 2023-12-03 15:39:26.560000             🧑  作者: Mango

带有示例的C++中的ios eof()函数

在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;
}

代码解释:

  1. 打开文件data.txt,并创建文件输入流infile
  2. 声明整数变量numsum,用于存储当前读取到的数字和计算它们的和;
  3. 使用while循环,从输入流中读取整数,并将它们累加到变量sum中;
  4. 关闭输入流infile
  5. 输出计算结果sum
  6. 如果输入流已经到达文件末尾,输出提示信息。

假设文件data.txt中包含以下内容:

1
2
3

则程序输出为:

The sum is 6
End of file reached.
注意事项
  1. eof()函数检测的是上一次文件读取的状态,而不是下一次文件读取的状态;
  2. 在使用eof()函数时,应先使用其他输入输出流操作函数(如>>getline()等)读取文件中的数据。如果先调用eof()函数,可能会返回错误的结果;
  3. 在使用文件输入流时,应始终检查文件是否成功打开。如果文件无法打开,则会产生异常。