C语言中 这 while(a!=EOF) 条件的意义是什么?

程序编写如下#include<stdio.h>main(){inta;a=getchar();while(a!=EOF){putchar(a);a=getchar();}... 程序编写如下
#include<stdio.h>
main()
{
int a;
a=getchar();
while(a!=EOF){
putchar(a);
a=getchar();

}

用简单易懂的术语(非专业属于)解释下
这 while(a!=EOF) 条件的意义是什么?
展开
 我来答
风若远去何人留
2015-10-09 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450118
专业C/C++软件开发

向TA提问 私信TA
展开全部
while是C语言的循环结构标识符,当while后括号内的条件成立(为真)时,会执行循环体,否则会退出循环。

!=为C语言中的条件运算符之一,读作不等于。其形式为
a!=b
计算规则为:
1 当a与b相等时,该表达式结果为假,即0;
2 当a与b不相等时,该表达式结果为真,即1。

EOF为End Of File的简写,这是一个宏定义,代表文件结束符,其值为-1。

于是这段代码的含义为,执行循环,直到a值为EOF时退出。
ducky8688
2012-07-20 · TA获得超过753个赞
知道小有建树答主
回答量:241
采纳率:100%
帮助的人:97.9万
展开全部
如楼上各位说的,EOF是为了判断你什么时候输完了以退出循环,按ctrl+Z的时候,进程会关闭标准输入,这时候getchar就会返回-1,也就是EOF,然后退出循环。当然,你并不一定要设置成EOF,你也可以设置成输入ESC后退出,ESC的键值是27,所以把while那行改成while(a!=27),这样你按ESC后,再按回车就退出了
追问
你撒谎,我 while(a!=27) 按ESC 再回车,没反映,一样可以继续输入别的字符
追答
哦,我用的是unix操作系统,按ESC的时候是27,不知道你用的是啥的,不然你可以换一个
比如 输入a的时候退出,改成 while(a!='a')
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小安无敌yeah
2012-07-20 · TA获得超过972个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:128万
展开全部
EOF是文件结束符,语句表示如果a不是文件或字符串结束符就循环
更多追问追答
追问
这一句在程序中起到什么作用呢??
追答
控制循环啊,如果没遇到文件结束符就输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
why3668
2012-07-20 · TA获得超过315个赞
知道小有建树答主
回答量:138
采纳率:100%
帮助的人:143万
展开全部
这条件的意思就是说,除非你按下ctrl+z,否则就不会跳出while循环~
追问
确实,我按了 ctrl+Z 键 就退出了,为什么他要这么写,还有哪些语句可以代替他的写法?
追答
EOF在C语言代表文件结束标志。
程序这么写的原因,就是给一个跳出死循环的方法,
这程序是从键盘上读取输入的,按键盘上的ctrl+z,就代表输入了一个文件结束标志~
替代写法么~ 得看你想怎么替代了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26ad406
2012-07-20 · TA获得超过1611个赞
知道大有可为答主
回答量:1506
采纳率:100%
帮助的人:1072万
展开全部
EOF是end of file的缩写
就是直到文件末尾
你要是用键盘输入的话是Ctrl+Z 然后再回车 就跳出循环了
更多追问追答
追问
这一句在程序中起到什么作用呢??
追答
就是起到读数据 如果你不知道数据有多少个 就读到文件最后
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式