| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 921 人关注过本帖
标题:为什么会是死循环
只看楼主 加入收藏
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
~`缓冲区是个什么样的地方啊`~~?

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-01-16 21:44
riyigeren
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-1-16
收藏
得分:0 
http://cpp.ga-la.com/html/3/3/0510/6.htm
使用 fflush(stdin) 是不正确的,至少是移植性不好的。

清空输入缓冲区的方法

虽然不可以用 fflush(stdin),但是我们可以自己写代码来清空输入缓冲区。只需要在 scanf 函数后面加上几句简单的代码就可以了。

/* C 版本 */
#include <stdio.h>


int main( void )
{
int i, c;
for ( ; ; )
{
fputs("Please input an integer: ", stdout);
scanf("%d", &i);

if ( feof(stdin) || ferror(stdin) )
{
/* 如果用户输入文件结束标志(或文件已被读完), */
/* 或者发生读写错误,则退出循环 */


/* do something */
break;
}
/* 没有发生错误,清空输入流。 */
/* 通过 while 循环把输入流中的余留数据“吃”掉 */
while ( (c = getchar()) != '\n' && c != EOF ) ;
/* 使用 scanf("%*[^\n]"); 也可以清空输入流, */

/* 不过会残留 \n 字符。 */

printf("%d\n", i);
}

return 0;
}


2007-01-16 21:53
riyigeren
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-1-16
收藏
得分:0 
http://cpp.ga-la.com/
上面确实有很多好东西的
2007-01-16 21:55
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
得分:0 
不错!!!!

在不断的拼搏与进取中,定能创造一片天地!
2007-01-16 22:14
神秘失恋
Rank: 1
等 级:新手上路
帖 子:663
专家分:0
注 册:2007-1-6
收藏
得分:0 
while(1)
{ scanf("%d",&a);
if(a>9||a<0)
printf("error!please input again:");
else
break;
}

上帝之手.........
2007-01-17 00:34
szhrxl
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-14
收藏
得分:0 

我想知道是什么原因引起的死循环,当输入字母时

2007-01-17 09:19
szhrxl
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-14
收藏
得分:0 
看过帖子http://cpp.ga-la.com/html/3/3/0510/6.htm,明白了
谢谢!!!
2007-01-17 09:24
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
我没找到,以前发的那个帖太长,
大家可以百度搜,好多网站上都有的.
谢谢riyigeren

倚天照海花无数,流水高山心自知。
2007-01-17 10:02
快速回复:为什么会是死循环
数据加载中...
 
   



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

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