c语言中EOF的用法

 我来答
tattackor
推荐于2017-10-10 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:876万
展开全部

1、EOF是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1:#define EOF (-1)。除了表示文件结尾,EOF还可以表示标准输入的结尾。但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。

2、例程:

#include <stdio.h>
int main()
{
char c;
while((c = getchar()) != EOF){
putchar(c);
}
return 0;
}

说明:在Windows上按CTRL+Z键,表示EOF。

注意:EOF虽然是文件结束符,但并不是在任何情况下输入Ctrl+D(Windows下Ctrl+Z)都能够实现文件结束的功能,只有在下列的条件下,才作为文件结束符。

(1)遇到getcahr函数执行时,要输入第一个字符时就直接输入Ctrl+D,就可以跳出getchar(),去执行程序的其他部分;
(2)在前面输入的字符为换行符时,接着输入Ctrl+D;
(3)在前面有字符输入且不为换行符时,要连着输入两次Ctrl+D,这时第二次输入的Ctrl+D起到文件结束符的功能。

死人3
2008-03-20 · TA获得超过513个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:121万
展开全部
EOF一般作为文件的结尾标记。其值是-1,也就是说在<stdio.h>如下定义#define EOF -1
-1对应着ctrl+Z,在有些系统也对应着f6键。
文件的结尾都有EOF,因此可以用如下程序显示一个文件的内容:
char c;
FILE *fp;
fp = fopen("filename.txt", "rt");
while((c=fgetc(fp)!=EOF)putchar(c);
也可以如下写:
while((c=fgetc(fp)!=-1)putchar(c);
.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陈宗权8d804
推荐于2017-10-15 · TA获得超过3766个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:954万
展开全部
EOF其实是整数-1,用于从文件读取数据的时候表示已经超越文件末尾这种错误状态。如果IO操作的结果是EOF,一般就意味着这次IO是失败的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
devil_v6
2008-03-20 · 超过20用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:0
展开全部
EOF一般作为文件的结尾标记。其值是-1,
在C语言中的头文件stdio.h中定义如下:

/* End-of-file constant definition
*/
#define EOF (-1) /* End of file indicator */
意思是一个文件的结束标志,由系统自己识别添加,所以读取文件的时候判断读出来的是不是EOF就可以知道是不是到文档的末尾了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式