| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 921 人关注过本帖
标题:为什么会是死循环
只看楼主 加入收藏
szhrxl
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-14
收藏
 问题点数:0 回复次数:17 
为什么会是死循环

#include <stdio.h>
main()
{
char a;
scanf("%d",&a);
while(a>9||a<0)
{
printf("error!please input again:");
scanf("%d",&a);
}
printf("%d\n",a);
getch();

}
以上程序在输入 字母 时为什么会出现错误死循环,即error!please input again不停的刷
程序本意是采集键盘输入0到9的数字,设计上是有点问题,但就这个程序在输入字母的时候成死循环是怎么回事啊
请高手帮忙分析下 :) 先行谢过!!!

搜索更多相关主题的帖子: 字母 include please 
2007-01-16 14:54
liel
Rank: 1
等 级:新手上路
帖 子:115
专家分:0
注 册:2007-1-16
收藏
得分:0 
运行时是什么样的效果啊?输入数字也是这样吗?

2007-01-16 14:59
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

#include <stdio.h>
main()
{
char a;
scanf("%d",&a);
while(a>9||a<0)
{
fflush(stdin);
printf("error!please input again:");
scanf("%d",&a);
}
printf("%d\n",a);
getch();

}

2007-01-16 15:02
liel
Rank: 1
等 级:新手上路
帖 子:115
专家分:0
注 册:2007-1-16
收藏
得分:0 
明白了!没有刷新缓冲区原来输入的东西!
Thank you very much !

2007-01-16 15:11
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
在处理输入字符时,一定要注意清空缓冲区中不必要的垃圾内容.

倚天照海花无数,流水高山心自知。
2007-01-16 17:12
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
nuciewth
你上次弄的关于fflush(stdin);介绍的帖子呢
我想看看去
2007-01-16 17:16
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
自己搜吧...
我也去找找...

倚天照海花无数,流水高山心自知。
2007-01-16 17:19
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
我搜拉
忘了主题了
搜了好长时间都没搜到
感觉还是找你找为好
解铃还需系铃人么
2007-01-16 17:24
zeno
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-1-4
收藏
得分:0 
“清空缓冲区中不必要的垃圾内容”是怎么操作的?

2007-01-16 21:31
lzz4438253
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2007-1-4
收藏
得分:0 
  我的编译器怎么没报错啊

2007-01-16 21:42
快速回复:为什么会是死循环
数据加载中...
 
   



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

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