c语言中的EOF 文件结束符号
很多学习过或者正在使用c语言的同学其实都会忽略EOF 这个关键字,但其实真正读懂EOF关键字是非常有好处的。
在linux内核中 大量使用EOF,如果你不真正搞懂他 很多代码你是看不明白的。
下面我们来看一段代码
#include<stdio.h>
int main()
{
int c;
c=getchar();
while((c=getchar())
!=EOF)
{
putchar(c);
}
}
很多c语言的书上都会有这么一段代码
但其实很多人并未思考 getchar函数实际上是从文本流中读入下一个输入字符,
在这段代码中为什么要用int 的变量来获取他的返回值呢?
因为我们在声明变量c的时候 必须让它大到足以存放getchar 函数返回的任何值。这里之所以不把c声明成char类型,是因为他必须足够大,除了能存储任何可能的字符外,还要能存储文件结束符号 EOF
因此我们必须将c 声明成int类型。
另外 我们在linux下 想要输入EOF符号的唯一方法就是 ctrl+d 。一般来说 打印出来EOF的值可以看出来 是-1.

浙公网安备 33010602011771号