gpt4 book ai didi

c++ - feof() 如何真正知道何时到达文件末尾?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:19 28 4
gpt4 key购买 nike

我是 C++ 的初学者,正在努力更好地理解 feof()。我读过 feof() 标志仅在尝试读取文件末尾后才设置为 true 很多次初学者如果执行类似 同时(!feof(文件))。不过,我想了解的是,它实际上如何解释已尝试读取文件末尾的内容?是否已经读入了整个文件并且已知字符数,或者是否有其他机制在起作用?

我意识到这可能是某处重复的问题,但我一直无法找到它,可能是因为我不知道如何最好地表达我所问的内容。如果已经有答案,将不胜感激。谢谢。

最佳答案

无论 C++ 库做什么,最终它都必须从文件中读取。在操作系统的某个地方,有一段代码最终会处理该读取。它从文件系统获取文件的长度,存储方式与文件系统存储其他所有内容的方式相同。知道文件的长度,读取的位置,读取的字节数,就可以判断低级读取命中了文件末尾。

做出决定后,它会向上传递到堆栈中。最终,它到达标准库,该库在内部记录已到达文件末尾。当对库的读取请求试图越过记录的结尾时,设置 EOF 标志并且 feof 将开始返回 true。

关于c++ - feof() 如何真正知道何时到达文件末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37193956/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com