【发布时间】:2011-05-20 17:02:30
【问题描述】:
这是导致我出现问题的代码的 sn-p:
#define MAX_NAME_LEN 64
char choice;
char name[MAX_NAME_LEN];
printf("Name: ");
fgets(name, MAX_NAME_LEN, stdin);
choice = getchar();
在我输入名称并按 Enter 后,getchar() 也会捕获换行符,而不是等待下一个字符。如何修复我的代码(如果可能的话,不要像另一个 getchar() 这样的hacky),以便 getchar() 在输入名称后按预期等待字符?
【问题讨论】:
-
您不应该在
MAX_NAME_LEN中添加一个 -fgets()只会读取n - 1字符,剩下一个用于终止 NUL。 -
啊,没错。谢谢指正。