关于EOF

1、在C中被定义为-1,源码为:

#define EOF (-1)

2、不同函数中有不同处理

(1)fgetc:在文件中是没有EOF这个字符的,所以是判断文件长度,在fp读到最后一个char后,再读一个char,就会返回EOF。

问题:如何判断文件长度?在文件系统中有相关记录

(2)在标准输入中,不可预知输入长度,如何处理EOF?

以scanf为例:

当scanf遇到如下字符时,将截取输入:换行(^J,10)、回车(^M,13)、EOF(^D,4)(暂时确认这些)。

*注意scanf遇到NULL(^@,0)时,不会截断输入!!

补充:当EOF(^D,4)在字符串中间位置时,scanf不会截断

原文地址:https://www.cnblogs.com/ywledoc/p/4173707.html