1. 程式人生 > >printf/cout呼叫在Eclipse CDT控制檯(console)中無實時輸出

printf/cout呼叫在Eclipse CDT控制檯(console)中無實時輸出

症狀描述:使用Eclipse執行或者除錯C/C++應用程式時,printf和cout呼叫無法實時輸出到控制檯

原因分析:當程式在Eclipse中執行時,預設把輸出輸出關聯到了Eclipse的console,而CDT的console是帶輸出快取的,所以會出現printf/cout呼叫時控制檯(console)無輸出情況,事實上是這個輸出沒有被實時輸出到console上。

解決方案:

1, 程式碼全域性設定:在main函式入口處設定stdout和stderr的快取區為NULL,即呼叫 setbuf(stdout, NULL) 和 setbuf(stderr, NULL)

2, 程式碼區域性設定:在每個printf/cout類似輸出的地方呼叫fflush(stdout)或者fflush(stderr)

3,CDT全域性設定:找半天沒找到設定的地方:(,如果你知道的話,麻煩告訴我啊:)