在使用 eclipse cdt 进行 c/c++ 开发时,发现 printf 和 cout 等的输出都不能即时显示。初步认为是输出被缓存的缘故。
目前有一下解决方法:
- 在程序的开始加入 setbuf(stdout, NULL) 来取消输出缓存。
- 在每一个输出函数后加上 fflush(stdout) 来刷新缓存。
- 在项目的运行配置中做如下设置:
进入 Run Configurations -> Environment。
添加环境变量:
Name : PATH
Value : C:\MinGW\bin
即在运行设置中增加 Path=C:\MinGW\bin
方法 1 和方法 2 都好理解,方法 3 还不知道是什么原理,而且经过我测试发现有时不一定有效果。
现在有两个疑问:
- 方法 3 的原理是什么?
- 这三种方法都需要针对每一个项目经行编码,或是设置,尤其是第二种方法,需要在每一个输出语句后面使用!作为程序员当然是不允许这样的。
以上两个疑问,望高手帮我解惑。