什么触发文件结束?

What triggers an End of File?

我是编程新手,最近,我的 class 开始使用 C++ 处理文件。我的问题是什么触发文件结束?就像换行符有“\n”一样,编译器是否有一些特定的东西来判断它是否是eof?非常感谢包含大量有趣细节的答案!

文件结束 (EOF) 不像行结束 (EOL / LF) 那样与特定字符相关联。它只是一个信号 "we're at the end of this file" 的状态,不同的方法将有不同的信号发送方式。通常这个 EOF "state" 当代码试图读取超过文件末尾时被触发。

例如,当使用 ifstream 时,如果我们读取了文件中的所有数据,get() 方法将 return Traits::eof()。在那之后,调用 std::ifstream::eof() 将 return true。这仅适用于 C++ 的流,不同的方法 and/or 语言可能有不同的 EOF 信号发送方式,它不像 EOL 那样具有普遍性,没有描述 EOF 的字符。