【发布时间】:2016-05-12 17:40:32
【问题描述】:
我是 C++ 的初学者,并试图更好地理解 feof()。我已经读到feof() 标志只有在尝试读取文件末尾之后才设置为 true,因此初学者如果执行while(!feof(file)) 之类的操作会比他们预期的多读一次。不过,我想了解的是,它实际上如何解释已尝试读取文件末尾的内容?整个文件是否已经读入并且字符数已经知道,还是有其他机制在起作用?
我意识到这可能是某个地方的重复问题,但我一直无法找到它,可能是因为我不知道最好的表达方式。如果已经有答案,将不胜感激。谢谢。
【问题讨论】:
-
图像流没有已知的限制。然后,没有其他方法可以尝试读取文件结尾。 (注意文件流是对不同类型的输入/输出的抽象)
-
@kartik7153 没有回答他的问题。他询问操作系统如何具体决定何时到达文件末尾。
-
@Jake 这是一个操作系统细节(它取决于使用的底层设备/协议)
-
我想说,文件系统的实现最终会决定,并且由于 Linux 支持不同的文件系统,因此需要查找它们的实现代码。