编译器返回输入 没成功 信息,例如:
int x,k;
k = scanf("%d",&x);
你拍入了 英文字母,x 没读到数据,scanf 返回 0 给 k.
scanf 返回 成功 读入的数据个数,一个也没读到,返回 0。
int a,b,c,k;
k = scanf("%d %d %d", &a,&b,&c);
你拍入了 123 456 abc
scanf 返回 成功 读入的数据个数 2. (a=123,b=456,c 没读到数据)
你可以添打印语句:
if (k<3) printf("read err !");
转换失败,返回成功转换的数值个数。
e.g.
scanf("%d%d%d", &a, &b, &c);
输入1 2 a 转换失败,a==1,b==2,,c没有被修改,可能是垃圾值。如果之前c被赋值就不是。
输入1 2 3a转换失败,a==1,b==2,c==3,返回3。
输入a转换失败,a,b,c的值都没变,可能是垃圾值。
注意转换失败之后那个字符依然留在输入流里。
类型不配,一般将是一个绝对值很大的负数。
会输出一串不知道什么的数字
系统的是随机数