亲手敲一下就会明白
#include<stdio.h>
int main()
{
int re
,b1
,b2
,b3
,b4
;
re
=scanf("%d%d%d%d",&b1
,&b2
,&b3
,&b4
);
printf("%d",re
);
return 0;
}
网上关于scanf返回值的描述是这样的:scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
就比如我上面这个代码,第一个%d%d%d%d:
正确的输入应该是1 2 3 4这类四个数字中间空格分开,然后返回值肯定是4,因为4个都是int型读取都没问题;
但如果输入a b c d,那返回值就变成0了,说明一个参数都读取不出来;
再者,如果输入a 1 b 2,那返回值是不是2了呢,因为输入了两个int啊,其实不是,返回值是0,因为第一个是a是一个字母不是int,这里就读取失败了,后面就不知道该怎么去匹配了,所以一旦失败就结束了,最终结果就是0; 所以输入1 a c 2的话scanf的返回值就是1
参考文章:scanf的百度百科