好的,所以我试图在VS中做一个基本的程序。输入一个数字然后打印出来。始终打印1。
int main(){
printf("Enter an integer: ");
int n = scanf_s("%d", &n);
printf("%d", n);
}
答案 0 :(得分:2)
您正在将scanf_s()
的返回值分配给变量n
,这意味着如果成功读取,程序将打印1
。
你应该做的是
int numberOfItemsMatched;
int readValue;
numberOfItemsMatched = scanf_s("%d", &readValue);
if (numberOfItemsMatched == 1)
printf("%d\n", readValue);
我希望变量名称是自我解释的,使用这种名称总是一个好主意。
答案 1 :(得分:0)
scanf的返回类型是读取的项目数。因此,如果scanf在读取项目时成功,则返回一个在此处分配给n的项目。因此输出为1.因此单独声明n和scanf。