Eclipse下printf和scanf的运行顺序问题
2015-06-16 17:58
253 查看
在写一个C语言时,运行时发现scanf比printf先执行了,在网上找了一下资料,原来是输出缓冲区的问题。
解决方案:
方案一:设置缓冲区为空,即没有缓冲区;
在printf之前添加:setvbuf(stdout,NULL,_IONBF,0);设置缓冲区为空。
方案二:每执行printf之后,强制缓冲区。具体方法如下:
在每句printf之后添加:fflush(stdout);
测试代码如下:
1.添加了 setvbuf(stdout,NULL,_IONBF,0);
2 添加 fflush(stdout);
解决方案:
方案一:设置缓冲区为空,即没有缓冲区;
在printf之前添加:setvbuf(stdout,NULL,_IONBF,0);设置缓冲区为空。
方案二:每执行printf之后,强制缓冲区。具体方法如下:
在每句printf之后添加:fflush(stdout);
测试代码如下:
1.添加了 setvbuf(stdout,NULL,_IONBF,0);
<span style="font-family:Microsoft YaHei;">#include <stdio.h> int main() { int i = 3; setvbuf(stdout,NULL,_IONBF,0); printf("hello\n"); scanf("%i" , &i); printf("你输入了%i",i); return 0; }</span>
2 添加 fflush(stdout);
<span style="font-family:Microsoft YaHei;">#include <stdio.h> int main() { int i = 3; printf("hello\n"); fflush(stdout); scanf("%i" , &i); printf("你输入了%i\n",i); fflush(stdout); scanf("%i" , &i); return 0; }</span>
相关文章推荐
- MyEclipse Web Project转Eclipse Dynamic Web Project
- Windows Clang开发环境备忘
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言内存对齐实例详解
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- 探讨C语言的那些小秘密之断言
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 基于C语言fflush()函数的使用详解
- C语言单链队列的表示与实现实例详解
- 关于C语言除0引发的思考
- 深入分析C中不安全的sprintf与strcpy
- Lua教程(四):在Lua中调用C语言、C++的函数
- C语言求幂计算的高效解法
- C语言实现输入一颗二元查找树并将该树转换为它的镜像