public member function
<ios> <iostream>

std::basic_ios::eof

bool eof() const;
检查 eofbit 是否已设置
如果已为流设置了 eofbit 错误状态标志,则返回 true

所有标准输入操作在读取流关联的序列时到达文件尾(End-of-File)时,都会设置此标志。

请注意,此函数返回的值取决于对流执行的最后一次操作(而不是下一次操作)。

尝试在 *文件尾* 读取的操作会失败,因此 eofbitfailbit 都会被设置。此函数可用于检查失败是由于到达 *文件尾* 还是由于其他原因。

参数



返回值

如果流的 eofbit 错误状态标志 已设置(这表示最后一次输入操作已到达文件尾),则返回 true
否则返回 false

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// ios::eof example
#include <iostream>     // std::cout
#include <fstream>      // std::ifstream

int main () {

  std::ifstream is("example.txt");   // open file

  char c;
  while (is.get(c))                  // loop getting single characters
    std::cout << c;

  if (is.eof())                      // check for EOF
    std::cout << "[EoF reached]\n";
  else
    std::cout << "[error reading]\n";

  is.close();                        // close file

  return 0;
}

数据竞争

访问流对象。
并发访问同一个流对象可能导致数据争用。

异常安全

强保证: 如果抛出异常,流不会发生任何改变。

另见