Qtcreator中调试控制台程序及调用printf打印不显示问题

一.

在qtcreator中调试控制台程序或者其它c语言编写的程序默认直接点击调试会有窗口一闪而过并不会进入调试会直接结束,如果需要调试需要设置运行环境,取消Run in terminal选项。项目->运行->取消勾选Run in terminal

二.

关于qtcreator调试控制台程序使用printf打印不显示问题,主要原因是缓存原因,有全缓冲,行缓冲,无缓冲,如无特殊操作(fflush(stdout))全缓冲只有达到当前缓冲区大小才会输出,行缓冲则会在接受到\n换行符时输出,无缓冲则是有什么输出什么,网上看到关于该问题的解决方法都是调用fflush进行刷新,这种对于有较多地方那个需要打印比较麻烦,所以根据原理在main函数入口设置标准输出为行缓冲或者无缓冲这样就是实时打印信息了(标准错误一样)

#include<stdio.h>

int main()
{
//方法一
  setbuf(stdout,NULL);
 
//方法二
//设置行缓冲需要用到另外一个函数
//_IOFBF 全缓冲
//_IOLBF 行缓冲
//_IONBF 无缓冲
//setvbuf(stdout,NULL,_IONBF,0);

return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章