我开始使用C语言。 我使用的Eclipse(JUNO)作为我的IDE和安装CDT插件。 我也将解压缩mingw64(GCC编译)。 我写了一个非常简单的程序,看看它是否工作。 这是我的代码:
#include <stdio.h>
int main()
{
int age;
printf("Hello, please enter your age:\n");
scanf("%d", &age);
printf("Your age is %d", age);
return 0;
}
问题是,输出缓冲区充满了第一的字符串值printf
但不输出到控制台。 我必须输入一个数字,然后才缓存中的所有数据倒到控制台,所以我看到控制台是这样的:
1
Hello, please enter your age:
Your age is 1
而不是什么预期是:
Hello, please enter your age:
1
Your age is 1
现在,我发现我可以使用fflush(stdout)
后的第一个printf
,但我不认为这个解决方案是优雅的,甚至是必要。 我如何能解决这个任何想法?
编辑 -因为我正在学习这在我的大学,我不能使用任何没有在课程中所学,所以我只能用printf
和scanf
新的编辑 -我想我已经找到了这种解释。 正如我所说的,我要输出在Eclipse控制台视图。 奇怪的是,如果我编译和从Windows的命令行中运行该程序时,我得到了想要的结果。 因此,我认为日食实际上是写输出到一个文件,并在控制台窗口中呈现它。 我如何可以强制Eclipse在我跑的配置,打开一个真正的命令行窗口?