huhao666 发表于 2020-10-27 17:57:27

scanf printf求助

#include <stdio.h>
int main()
{       
        int a=0;
        int value_return;
        value_return=scanf("%d",&a);
        printf("%d\n",a);
        printf("%d",value_return);
}
如图:为什么输入213sadd543,输出a=213?value_return=1?不懂printf与scanf,求详解。

liuzhengyuan 发表于 2020-10-27 17:57:28

scanf 返回 1 表示成功读入

a = 123 因为你设定的输入类型是 %d (整数),所以后面的字母不会被读入

shooan 发表于 2020-10-27 18:04:51

scanf的返回值表示成功读取的个数。这里%d对应的数字被读入了,所以是1.
a= 123 是很正常的,因为scanf读取整数的时候,碰到不符合整数规则的(这里是字母)就会停下来。

愷龍 发表于 2020-10-27 18:48:02

1.你用的%d,这表实整数类型,字母包括字母之后的就不会读入这是123的原因
2.scanf表示的是读入的个数,scanf一次只能读入一个,如果你想多次读入可以考虑用循环

兔子不说话 发表于 2020-10-27 23:51:01

shooan 发表于 2020-10-27 18:04
scanf的返回值表示成功读取的个数。这里%d对应的数字被读入了,所以是1.
a= 123 是很正常的,因为scanf读 ...

没错,就是这样的
页: [1]
查看完整版本: scanf printf求助