scanf 之后的 printf 总是显示 1(相同的意外值)
printf after scanf always displays 1 (same unexpected value)
好的,我正在尝试在 VS 中编写一个基本程序。输入一个数字然后它被打印出来。始终打印 1。
int main(){
printf("Enter an integer: ");
int n = scanf_s("%d", &n);
printf("%d", n);
}
您正在将 scanf_s()
的返回值分配给变量 n
,这意味着如果读取成功,程序将打印 1
。
你应该做的是
int numberOfItemsMatched;
int readValue;
numberOfItemsMatched = scanf_s("%d", &readValue);
if (numberOfItemsMatched == 1)
printf("%d\n", readValue);
我希望变量名是不言自明的,使用这种名称总是一个好主意。
return scanf 的类型是读取的项目数。因此,如果 scanf 成功读取了一项,那么它 return 就是分配给 n 的一项。因此输出为 1。因此单独声明 n 和 scanf。
好的,我正在尝试在 VS 中编写一个基本程序。输入一个数字然后它被打印出来。始终打印 1。
int main(){
printf("Enter an integer: ");
int n = scanf_s("%d", &n);
printf("%d", n);
}
您正在将 scanf_s()
的返回值分配给变量 n
,这意味着如果读取成功,程序将打印 1
。
你应该做的是
int numberOfItemsMatched;
int readValue;
numberOfItemsMatched = scanf_s("%d", &readValue);
if (numberOfItemsMatched == 1)
printf("%d\n", readValue);
我希望变量名是不言自明的,使用这种名称总是一个好主意。
return scanf 的类型是读取的项目数。因此,如果 scanf 成功读取了一项,那么它 return 就是分配给 n 的一项。因此输出为 1。因此单独声明 n 和 scanf。