在C语言中,EOF(end of file)用来表示文件结束。它是头文件stdio.h里面定义的一个宏,其定义如下:
/* End of file character.
Some things throughout the library rely on this being -1. */
#ifndef EOF
# define EOF (-1)
#endif
从上面可以看出,EOF实际上是-1, 为什么是-1呢?因为在文本文件中,数据都是以字符的ASCII代码值的形式存放。而ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。在Linux系统之中,当系统读取到文件结尾,会返回一个信号值,这个信号值就是EOF, 即-1。
Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF
Windows中,在新的一行的开头,按下Ctrl-Z,就表示EOF。
本文参考:
https://blog.csdn.net/qq_25718147/article/details/50765095
https://blog.csdn.net/xiachong27/article/details/88253830