【发布时间】:2017-01-11 23:23:53
【问题描述】:
我有一个代码,我希望 2 个用户输入最多 20 个字符。 我只想保留 20 个。我的问题是,在第一次输入之后,如果用户输入的字符超过 20 个,这些字符仍然在标准输入中,所以下一个 fget 会读取它。
char *pseudo = malloc(21);
fgets(pseudo,21,stdin);
strtok(pseudo,"\n");
char * tube = malloc(21);
fgets(tube,21,stdin);
strtok(tube,"\n");
我发现以下解决方案可以在 2 个 fgets 调用之间清空 stdin,它可以工作,但它会在 2 个调用之间阻塞:我必须输入一些内容才能被询问第二个输入。
int c = 0;
while (c != '\n' && c != EOF)
{
c = getchar();
}
【问题讨论】: