Scanf功能中的错误

时间:2016-07-16 07:05:57

标签: c

我的程序很简单但它有一个我无法解决的错误。 这是代码:

#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,我应该按回车键。然而,这只是一个新的路线。似乎程序无法检测到我的整数值。

2 个答案:

答案 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