我正在用C语言编程。出于某种原因只是跳过我的fgets并在之后运行代码而我不知道为什么。
char content[256];
printf("What do you want it to say?\n");
fgets(content, 256, stdin);
答案 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);