首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于scanf()解决方法

2012-02-08 
关于scanf()主要是想看看scanf()的返回值,如下面的程序#includestdio.hvoidmain(){intaintbintcprint

关于scanf()
主要是想看看scanf()的返回值,如下面的程序
#include   <stdio.h>
void   main()
{
        int   a;
        int   b;
        int   c;
        printf( "请输入三个整数: ");
        int   x=scanf( "%d%d%d ",&a,&b,&c);
        printf( "%d\t%d\t%d\n%d\n ",a,b,c,x);  
}
输入   1   2   3时输出   1   2   3   3
输入   1   2   d时输出   1   2   X   2   //“X”是一个随机数
输入   1   d   d时输出   1   X   X   1   //“X”是一个随机数。
上面都没问题,但是,当
输入   1   d   3时输出   1   X   X   1
scanf()函数返回的值不是正确按指定格式输入变量的个数吗?c的输入格式也是正确的,为什么返回值是1,而不是2?而且连c也一并没有赋值了?

[解决办法]
因为d不是数字,所以输入b的时候出错,输入缓存区没有清空,d还在那,所以输入c的时候还是出错。因此只有a输入正确,故返回值是1
[解决办法]
scanf的返回值是读取成功的个数,
你输入1 d 3
在读取时,1读取成功,d读取失败,返回,3就不读取了.

热点排行