eclipse中scanf和printf的运行顺序颠倒的解决方法
2011-10-05 16:12
549 查看
最近我利用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
如下代码:
#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
相关文章推荐
- Eclipse下printf和scanf的运行顺序问题
- eclipse中的关于scanf和printf的输入顺序的解决办法
- eclipse中的关于scanf和printf的输入顺序的解决办法
- Ubuntu系统下运行Eclipse出现找不到jre的问题的解决方法
- Ubuntu16.04解决eclipse无法正常运行方法
- (转)Permission denied: win7下面eclipse上传本地文件到DFS && 运行M/R程序时出现的同样的错误解决方法
- python 使用eclipse编码运行出现SyntaxError: Non-UTF-8 code starting 解决方法
- 解决Eclipse项目中有sql-map-config.xml文件但是运行Junit测试ibatis时提示找不到该文件的一种方法
- eclipse中配置tomcat 以及运行eclipse中tomcat的时候访问http://localhost:8080出现404错误的解决方法
- Ubuntu系统下运行Eclipse出现找不到jre的问题的解决方法
- eclipse中运行安卓程序,提示Failed to allocate memory: 8的解决方法
- Eclipse上运行Android程序时,总出现emulator-5554 disconnected!的解决方法
- 关于在eclipse上能运行Map但无法运行Reduce的解决方法
- eclipse运行java.lang.OutOfMemoryError: PermGen space解决方法
- 关于在ubuntu下eclipse中c++11支持和编译运行c++11报错的解决方法
- 关于eclipse 运行了 maven install后 在tomcat中启动web项目出现classnofind的异常解决方法
- 虚拟机里运行eclipse卡在Loading Workbench界面解决方法
- eclipse下工程导成jar包运行报错,解决方法
- Eclipse对printf()不能输出到控制台的快速解决方法
- 当eclipse卡死的时候关闭重启eclipse,运行TOMCAT时,提示8080端口被占用的解决方法