原文链接: http://www.juzicode.com/cpp-error-devc-scanf-get-wrong-return-value/
错误提示:
scanf函数输入2个数据,只有第1个变量的值是正确的:
//VX:桔子code / juzicode.com
#include "stdio.h"
int main(void)
{
printf("请输入2个数据:");
int a,b;
scanf("%d,%d",&a,&b);
printf("a=%d, b=%d \n",a,b);
return 0;
}
a和b分别输入10和20,a的值正确,但是b的值为1不为输入的20:
错误原因:
1、scanf()内使用了哪种输入格式,实际输入时必须满足其特定格式要求。比如上例中scanf(“%d,%d”,&a,&b)的2个输入变量之间必须要求输入逗号,但是实际输入的时候用了空格替代,所以发生错误。
解决方法:
1、方法1:输入的时候严格按照代码中的格式,用英文逗号隔开2个输入数据:
2、方法2:常规做法去掉scanf格式化输入中间的逗号,采用空格分隔:
//VX:桔子code / juzicode.com
#include "stdio.h"
int main(void)
{
printf("请输入2个数据:");
int a,b;
//scanf("%d,%d",&a,&b);
scanf("%d %d",&a,&b);
printf("a=%d, b=%d \n",a,b);
return 0;
}
如果本文还没有完全解决你的疑惑,你也可以在微信公众号“桔子code”后台给我留言,欢迎一起探讨交流。