#include <stdio.h>
int main(void) {
char str[50];
printf("Enter a string : ");
gets(str);
printf("You entered: %s", str);
return(0);
}
我正在 Eclipse 上运行代码,我希望得到以下结果:
Enter a string : abcde
You entered: abcde
但是当我运行程序时,第一个 print 语句没有显示在控制台中,并且在我键入任何字符串后,程序失败。谁能告诉我为什么会这样?另外,你能告诉我如何修复我的代码以获得预期的结果吗?
输出可能是行缓冲的,并且 printf 字符串不以换行符结尾。在任何不以 n
结尾的printf()
后强制输出带有 fflush(NULL);
.
使用 fgets(char *str, int n, FILE *stream);
而不是 gets
。