无论我为x输入什么值,y值的输出始终为1.任何想法为什么?
#include <stdio.h>
int main() {
int x, y;
y = scanf("%d", &x);
printf("y = %d\n", y);
return 0;
}
答案 0 :(得分:1)
这些函数 返回成功匹配并分配 的输入项数,这些项可能少于提供的数,或者在早期匹配失败时甚至为零。
由于scanf
返回值是写入的项目数(在您的情况下为1,因为只扫描了1 int
),而不是扫描字符的整数值
int main() {
int x, y, z, n;
n = scanf("%d", &x);
printf("n = %d\n", n); // prints 1
n = scanf("%d%d", &x, &y);
printf("n = %d\n", n); // prints 2
n = scanf("%d%d%d", &x, &y,&z);
printf("n = %d\n", n); // prints 3
return 0;
}