在使用 eclipse cdt 进行 c/c++ 开发时,发现 printf 和 cout 等的输出都不能即时显示。初步认为是输出被缓存的缘故。

目前有一下解决方法:

  1. 在程序的开始加入 setbuf(stdout, NULL) 来取消输出缓存。
  2. 在每一个输出函数后加上 fflush(stdout) 来刷新缓存。
  3. 在项目的运行配置中做如下设置:

进入 Run Configurations -> Environment。

添加环境变量:
Name : PATH
Value : C:\MinGW\bin

即在运行设置中增加 Path=C:\MinGW\bin

方法 1 和方法 2 都好理解,方法 3 还不知道是什么原理,而且经过我测试发现有时不一定有效果。

现在有两个疑问:

  1. 方法 3 的原理是什么?
  2. 这三种方法都需要针对每一个项目经行编码,或是设置,尤其是第二种方法,需要在每一个输出语句后面使用!作为程序员当然是不允许这样的。

以上两个疑问,望高手帮我解惑。

posted on 2013-03-14 10:50  简单的逻辑  阅读(1043)  评论(0)    收藏  举报