C/C++错误集锦(DEV-C++):scanf函数输入2个数据,只有第1个变量的值正确

原文链接: 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”后台给我留言,欢迎一起探讨交流。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注