最近我利用Eclipse进行c语言开发时,发现当使用输入输出函数时,会出现一种奇怪的现象:必须在控制台完全输入数据后,控制台才会输出诸如提示输入的语句及最终结果。
如下代码:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int n = 0;
printf("Input a number: ");
scanf("%d", &n);
printf("/nThe number you entered was %d/n", n);
puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
return EXIT_SUCCESS;}
编译链接后的控制台运行结果如下图所示:
显然,运行结果并不是我们需要的。
通过查阅资料,发现在Eclipse中在输入数字前需要刷新标准输出stdout。
刷新标准输出可以通过两种方式:一种是隐式提示,利用换行提示符完成(如常见的printf("\n")语句);另一种是显式提示利用fflush(stdout)语句完成。在尝试第一种失败后,我尝试了第二种方法,即使用fflush(stdout)语句,最终成功实现了控制台先出现提示语句,在输入数字。
调整后的代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int n = 0;
printf("Input a number: ");
fflush(stdout);
scanf("%d", &n);
printf("\nThe number you entered was %d\n", n);
puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
return EXIT_SUCCESS;}
相应的运行结果如下图所示:
在此记录,与大家分享。
参考博友文章:http://blog.csdn.net/rznice/article/details/5333338