c++ - 什么触发文件结束?

标签 c++ visual-c++ eof

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

最佳答案

文件结束 (EOF) 不像行结束 (EOL/LF) 那样与特定字符相关联。它只是一个信号“我们在这个文件的末尾”的状态,不同的方法将有不同的方式来发出信号。通常,当代码试图读取超过文件末尾时,会触发此 EOF“状态”。

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

关于c++ - 什么触发文件结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57231599/

相关文章:

visual-studio - TFS 错误 - 意外的文件结尾

c++ - 为什么 qmake 将所有对象 (.o) 文件放到一个目录中?

c++ - 从父类访问 Enum 的语法

visual-c++ - DirectX 11.1 尝试创 build 备以不触发超时检测恢复

c++ - 我可以只为单个 cpp 关闭/GL 吗?

python - sys.stdin 在 ctrl-d 上不关闭

c - 将 n 个整数添加到非固定数组

c++ - 生产者/消费者堆栈中竞争条件的原因

c++ - 如何使用vtk将窗口坐标映射到对象坐标

visual-c++ - 如何检索 Windows 8 中 TSF 管理器使用的文档中的总字符数?