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;
}

 

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