跳过我的fgets

时间:2012-07-13 19:38:09

标签: c

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

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

3 个答案:

答案 0 :(得分:1)

你试过冲洗stdin吗?您可能在其中捕获了一个新行字符,导致您的fgets立即返回。

This question引用了一个很好的方法来刷新stdin

答案 1 :(得分:1)

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

答案 2 :(得分: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);