程序编写如下
#include<stdio.h>
main()
{
int a;
a=getchar();
while(a!=EOF){
putchar(a);
a=getchar();
}
用简单易懂的术语(非专业属于)解释下
这 while(a!=EOF) 条件的意义是什么?
whileæ¯Cè¯è¨ç循ç¯ç»ææ è¯ç¬¦ï¼å½whileåæ¬å·å
çæ¡ä»¶æç«(为ç)æ¶ï¼ä¼æ§è¡å¾ªç¯ä½ï¼å¦åä¼éåºå¾ªç¯ã
!=为Cè¯è¨ä¸çæ¡ä»¶è¿ç®ç¬¦ä¹ä¸ï¼è¯»ä½ä¸çäºãå ¶å½¢å¼ä¸º
a!=b
计ç®è§å为ï¼
1 å½aä¸bç¸çæ¶ï¼è¯¥è¡¨è¾¾å¼ç»æ为åï¼å³0ï¼
2 å½aä¸bä¸ç¸çæ¶ï¼è¯¥è¡¨è¾¾å¼ç»æ为çï¼å³1ã
EOF为End Of Fileçç®åï¼è¿æ¯ä¸ä¸ªå®å®ä¹ï¼ä»£è¡¨æ件ç»æ符ï¼å ¶å¼ä¸º-1ã
äºæ¯è¿æ®µä»£ç çå«ä¹ä¸ºï¼æ§è¡å¾ªç¯ï¼ç´å°aå¼ä¸ºEOFæ¶éåºã
!=为Cè¯è¨ä¸çæ¡ä»¶è¿ç®ç¬¦ä¹ä¸ï¼è¯»ä½ä¸çäºãå ¶å½¢å¼ä¸º
a!=b
计ç®è§å为ï¼
1 å½aä¸bç¸çæ¶ï¼è¯¥è¡¨è¾¾å¼ç»æ为åï¼å³0ï¼
2 å½aä¸bä¸ç¸çæ¶ï¼è¯¥è¡¨è¾¾å¼ç»æ为çï¼å³1ã
EOF为End Of Fileçç®åï¼è¿æ¯ä¸ä¸ªå®å®ä¹ï¼ä»£è¡¨æ件ç»æ符ï¼å ¶å¼ä¸º-1ã
äºæ¯è¿æ®µä»£ç çå«ä¹ä¸ºï¼æ§è¡å¾ªç¯ï¼ç´å°aå¼ä¸ºEOFæ¶éåºã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-07-20
如楼上各位说的,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')
第2个回答 2012-07-20
EOF是文件结束符,语句表示如果a不是文件或字符串结束符就循环追问
这一句在程序中起到什么作用呢??
追答控制循环啊,如果没遇到文件结束符就输出
追问a是多少就遇到文件结束符呢
追答比如输入一个字符串abcd,当你按下回车的时候,表明字符串输入结束,系统自动为字符串加上结束标志,一般为‘\0’,这就是所说的结束符了
第3个回答 2012-07-20
这条件的意思就是说,除非你按下ctrl+z,否则就不会跳出while循环~追问
确实,我按了 ctrl+Z 键 就退出了,为什么他要这么写,还有哪些语句可以代替他的写法?
追答EOF在C语言代表文件结束标志。
程序这么写的原因,就是给一个跳出死循环的方法,
这程序是从键盘上读取输入的,按键盘上的ctrl+z,就代表输入了一个文件结束标志~
替代写法么~ 得看你想怎么替代了~
第4个回答 2012-07-20
EOF是end of file的缩写
就是直到文件末尾
你要是用键盘输入的话是Ctrl+Z 然后再回车 就跳出循环了追问
就是直到文件末尾
你要是用键盘输入的话是Ctrl+Z 然后再回车 就跳出循环了追问
这一句在程序中起到什么作用呢??
追答就是起到读数据 如果你不知道数据有多少个 就读到文件最后
追问那 这程序中,他是怎么读数据的,举例说明下,例如输入........ ,你能说明下吗?
本回答被网友采纳