您的位置:首页 > 编程语言 > C语言/C++

c语言中的EOF 文件结束符号

2012-09-17 22:25 507 查看
很多学习过或者正在使用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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: