2012-12-25 53 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

相关问题