我正在阅读“卡特的PC汇编语言”,我在第32页的脚注中看到了这句话让我很困惑!
如果我们假设文件末尾可能没有EOF(正如书中所说)是正确的陈述,那么我们如何才能找出文件末尾的位置?
它还产生了另一个问题:fseek是否使用EOF在文件中来回传递?
PC => ^ Z:EOF
在旧版PC天中,ctrl-Z是EOF文件中的信号。
在UNIX和其他现代系统下:在读取stat.st_size后面,发出EOF信号
来自https://www.drpaulcarter.com/cs/common-c-errors.php :
这个价值是多少? EOF对学生的一个常见误解是文件最后有一个特殊的EOF字符。 文件末尾没有存储特殊字符。 EOF是函数返回的整数错误代码。
好吧, EOF
不存储在文件的末尾,而不是char
。 EOF
是一条错误消息,当没有更多数据要读取时,读取函数会返回。 这就是getchar
返回int
的原因 – 它可能返回一个转换为int
的char
,或者返回int
EOF
(它不是有效的char
,所以如果你得到它,你可以确定你传递了文件的结尾)。
EOF未存储在文件中。 当没有更多数据要读取或发生输入错误时,OS会返回EOF(通常定义为-1)。 所以一旦你到达文件的末尾,你必须点击EOF。
我对你书中的陈述的猜测是,它意味着"EOF is not necessarily be at the end of file but also possible to have it somewhere in the middle of a file".
这对预期的输入错误是正确的。
在C代码的上下文中, EOF
仅表示没有更多可用于给定输入流的数据。 对应于文件本身中的特殊EOF字符是否是底层文件或I / O系统的函数。
以上就是c/c++开发分享常见的误解:文件末尾有一个EOF字符相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/562388.html