C++中 eof怎么用 要具体点的

如题另外while((c=getchar())!=eof)这个语句什么意思... 如题
另外 while((c=getchar()) !=eof)这个语句什么意思
展开
 我来答
她是我的小太阳
高粉答主

2015-10-22 · 醉心答题,欢迎关注
知道顶级答主
回答量:5.1万
采纳率:83%
帮助的人:8872万
展开全部
1、EOF是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1:#define EOF (-1)。除了表示文件结尾,EOF还可以表示标准输入的结尾。因为有时候无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。

2、在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,可以是文本文件,也可以是标准输入stdin。在文本文件中,数据都是以字符的ASCII代码值的形式存放。对于普通文本,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。
在windows平台,stdin输入流的EOF标志是 ctrl + z。
在unix平台,stdin输入流的EOF标志是 ctrl + d。
例程:

#include <stdio.h>
int main(){
int n,i;
int array[25];
while (scanf("%d",&n)!=EOF){ //循环读入n,直到直到crtl+z/d
for (i=0; i<n; i++) scanf("%d",array+i);
for (i=0; i<n; i++)
printf ("%d ",array[i]);
}
return 0;
}
南坪中学校帅
2010-02-19 · TA获得超过3413个赞
知道小有建树答主
回答量:1201
采纳率:100%
帮助的人:1077万
展开全部
读取的字符不等于文件结束符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bloodelf02
2010-02-19 · TA获得超过1657个赞
知道小有建树答主
回答量:328
采纳率:0%
帮助的人:490万
展开全部
这里应该是大写的 EOF 宏,值为-1。

getchar()函数当输入流出错或者到达末尾的时候,就会返回EOF

while((c=getchar()) != EOF) 就是检查是否读取到了输入流末尾,是就跳出,不是就继续while下去。

PS: getchar() 是一个宏定义,
#define getchar() getc(stdin)

所以你需要查get函数的规格说明。

参考资料: msdn + 自己经验

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式