| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 564 人关注过本帖
标题:[讨论]难以驾驭的函数:scanf函数
只看楼主 加入收藏
blackorchis
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-4
收藏
 问题点数:0 回复次数:6 
[讨论]难以驾驭的函数:scanf函数
void main( void )
{
int a;

scanf("%d", &a);
while( 1 )
{
scanf("%d",&a);
}
}

如果第一次输入一个字符或多个字符时,while会如何执行?如果要求输入一个整数实际输入的是字符型的数据时,scanf就象“卡”住一样,由于“吃”不进字符型的数据,而在while循环中又要求不停地输入,因此while中的scanf函数不停地去尝试读取缓冲区已存在的字符,而根本不会停下来等用户再输入。scanf读取缓冲区中剩余的数据有时候会带来一些麻烦,有没有什么函数可以清除缓冲区中剩余的数据呢?
搜索更多相关主题的帖子: 函数 scanf 
2007-11-15 23:51
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

if(scanf("%d", &a) != 1)
while(getchar() != '\n'); // 丢弃缓冲区字符




//------------------------------------------------------------------------------
#include <stdio.h>

int main(void)
{
int a;
while(scanf("%d", &a) != 1) // 如果没有成功读入一个整数
while(getchar() != '\n'); // 丢弃缓冲区字符

return 0;
}

//------------------------------------------------------------------------------
#include <stdio.h>

int main(void)
{
int a;
while(scanf("%d", &a) != 1) // 如果没有成功读入一个整数
while(getchar() != '\n'); // 丢弃缓冲区字符

while(getchar() != '\n'); // 输入成功至少也会剩余下一个回车字符
printf("%d", a);
getchar();
return 0;
}

[此贴子已经被作者于2007-11-16 1:22:07编辑过]


—>〉Sun〈<—
2007-11-16 01:11
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 

要是有个什么函数:
[CODE]void clearbuf(){
while(getchar() != '\n');
}[/CODE]
就好了……


专心编程………
飞燕算法初级群:3996098
我的Blog
2007-11-17 13:06
eakcon
Rank: 1
等 级:新手上路
帖 子:754
专家分:0
注 册:2007-11-7
收藏
得分:0 
要加上using namespace std;才能用cin和cout?
2007-11-17 15:41
清风如云
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-23
收藏
得分:0 
fflush(stdin)
可清除缓冲区中的内容。

希望是勇于实践的未来。
2007-11-17 16:56
blackorchis
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-4
收藏
得分:0 
谢谢5楼。
2007-11-17 21:39
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
fflush…………谢谢~~

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-11-17 22:06
快速回复:[讨论]难以驾驭的函数:scanf函数
数据加载中...
 
   



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

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