| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1898 人关注过本帖
标题:EOF为什么不能终止循环?
只看楼主 加入收藏
tanqf
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-6-12
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
EOF为什么不能终止循环?
以下是一个简单的程序,将输入的字符在屏幕上回显:
#include"stdio.h"   
main()
{
 int c;                       
 while((c=getchar())!=EOF)   
  putchar(c);
 c=getchar();
}
 
问题:在运行以上程序时,虽然输入了“EOF”(Ctrl+Z),但是按回车键后,程序并没有结束,而是继续处于等待输入的状态。如果把EOF换成'#',输入“#”并按按回车键后,程序就结束了。不知是何道理?
搜索更多相关主题的帖子: 输入 include 
2012-08-29 10:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
不要循环,只用一个getchar(),不敲回车,你试试可以输入多少字符?

授人以渔,不授人以鱼。
2012-08-29 10:47
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
这个真帮组不上,我用的是linux系统  EOF 组合键 一按 系统SHELL 就直接 KILL 了 进程

我要成为嘿嘿的黑客,替天行道
2012-08-29 20:12
sanc
Rank: 1
等 级:新手上路
帖 子:2
专家分:8
注 册:2010-1-4
收藏
得分:8 
EOF是检测文件结尾,而文件结尾在windows系统里是Ctrl+z组合键表示文件结尾,你c=getchar()每次读入一个字符,回车循环又开始读入。当然不会结束啦。
2012-08-29 21:18
快速回复:EOF为什么不能终止循环?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031046 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved