2012-12-25 56 views
0

我有一個C++應用程序,在DEV C++中編譯,它包含pthread多線程庫。我有2個線程。默認的int main()以及我創建的一個線索,它將在一週中的每一天打印出 ,每隔一秒一次。但是當我執行它時,它可以工作,但是 程序中只有一個遊標。這是問題出在哪裏:我需要用這種方式將一週中的這幾天寫到屏幕上,以座標0, 50爲例,只需定位文本 而不是光標。這是如此第一個線程與光標,不會干擾我的第二個線程 輸出,他們都將同時執行如何輸出文本到控制檯到特定座標而不移動光標座標在C++中

+1

查一查要麼[ncurses的(http://en.wikipedia.org/wiki/Ncurses)或[VT100光標控制](http://www.termsys.demon.co.uk/vtansi.htm#cursor)序列。 –

+0

http://gnuwin32.sourceforge.net/packages/ncurses.htm – paulsm4

回答

0

假設你正在使用ncurses或類似的東西?因此,您的控制檯終端是共享資源,您必須使用互斥鎖來保護它,並注意每個線程中的遊標定位。你也可以聲明一個線程的老闆,其光標位置由另一個線程恢復。然後,另一個線程會在獲取互斥鎖後,執行getcurx,getcury等操作,執行自己的定位和outout操作,然後恢復使用getcurx/y檢索到的光標pos。
請注意,在每種情況下,所有線程在訪問終端之前都需要獲取互斥鎖。
你也可以請檢查是否可以在ncurses的內建支持線程一起走,尋找出use_screenuse_window

相關問題