0

我正在用 C 编程。出于某种原因,只是跳过了我的 fgets 并在之后运行代码,我不知道为什么。

char content[256];
printf("What do you want it to say?\n");
fgets(content, 256, stdin);
4

3 回答 3

1

回想一下,I/O 可以被缓冲。如果在调用您的函数时输入缓冲区中有任何等待,它将被读入。如果缓冲区中的第一个字符是 a '\n',该函数将立即返回并且似乎没有收集任何输入。在调用之前确保输入缓冲区中没有任何内容fgets()

于 2012-07-13T19:45:12.887 回答
1

您是否尝试过刷新标准输入?您可能会在其中捕获一个换行符,导致您的 fgets 立即返回。

这个问题引用了一个刷新标准输入的好方法

于 2012-07-13T19:41:28.650 回答
0
char content[256];
printf("What do you want it to say?\n");
while ( getchar() != '\n');
fgets(content, 256, stdin);

或者你试过这个...

 char content[256];
 printf("What do you want it to say?\n");
 fgets(content, 256, stdin);
于 2014-09-13T08:35:11.707 回答