我正在用 C 编程。出于某种原因,只是跳过了我的 fgets 并在之后运行代码,我不知道为什么。
char content[256];
printf("What do you want it to say?\n");
fgets(content, 256, stdin);
我正在用 C 编程。出于某种原因,只是跳过了我的 fgets 并在之后运行代码,我不知道为什么。
char content[256];
printf("What do you want it to say?\n");
fgets(content, 256, stdin);
回想一下,I/O 可以被缓冲。如果在调用您的函数时输入缓冲区中有任何等待,它将被读入。如果缓冲区中的第一个字符是 a '\n'
,该函数将立即返回并且似乎没有收集任何输入。在调用之前确保输入缓冲区中没有任何内容fgets()
。
您是否尝试过刷新标准输入?您可能会在其中捕获一个换行符,导致您的 fgets 立即返回。
这个问题引用了一个刷新标准输入的好方法
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);