我的程序很简单但它有一个我无法解决的错误。 这是代码:
#include <stdio.h>
int main(int argc, const char * argv[]) {
char name[100];
int age;
printf("What's your name?\n");
scanf("%s", name);
printf("Hey %s!\n",name);
printf("How old are you?\n");
scanf("%d\n", &age);
printf("You're %d years old, cool!\n", age);
return (0);
}
当我到达scanf
年龄时,我有一个错误。即使我输入了一个数字,例如22,我应该按回车键。然而,这只是一个新的路线。似乎程序无法检测到我的整数值。
答案 0 :(得分:1)
从扫描码中删除\ n:
CustomError: EmptyResponse
答案 1 :(得分:1)
scanf("%d\n", &age);
应该是
scanf("%d", &age);
请注意,scanf("%d\n", &age)
与scanf("%d ", &age)
相同。这要求输入是一个整数,后跟一些空格(例如换行符)。扫描将在下一个非空格后停止。它基本上与scanf("%d %s", ...)
相同,但没有将字符串存储在任何地方(我在这里做了一点挥手)。
scanf()
手册可在此处找到:http://en.cppreference.com/w/c/io/fscanf