先说一点需要的知识
scanf:
① 遇空格、“回车”、“跳格”键,结束当前输入
② 遇宽度结束,结束当前输入
③ 遇非法输入,结束所有输入
scanf的
返回值表示输入成功的数的个数,若遇到输入意外返回EOF
你的这个程序,输入逗号是遇到非法字符,scanf结束所有输入同时返回1(因为第一个值是正确的)
也就是说
如果
int ret=scanf("%d%d%d",&x,&y,&z);
printf("%d",ret);
如果输入的是
25,13,10<CR>
则程序会打印1,x的值是输入的第一个数25,但y z却是申请空间时的
随机数,所以最后的printf("x+y+z=%d",x+y+z);输出是不确定的