【问题标题】:how to output text to console to specific coordinates without moving the cursor coordinates in c++如何在不移动 C++ 中的光标坐标的情况下将文本输出到控制台到特定坐标
【发布时间】:2012-12-25 20:08:07
【问题描述】:
我有一个 C++ 应用程序,在 DEV C++ 中编译,它包括pthread 多线程库。我有 2 个线程。默认int main(),以及我创建的一个线程,将打印出来
一周中的几天,一次一个,每隔几秒钟。但是当我执行这个时,它可以工作,但是
程序中只有一个光标。这就是问题所在:例如,我需要将一周中的这些天写入屏幕坐标0, 50的方式,只是定位文本
不是光标。这是第一个带有光标的线程,不会干扰我的第二个线程
输出,它们将同时执行
【问题讨论】:
标签:
c++
text
position
output
【解决方案1】:
假设您正在使用 ncurses 或类似的东西?所以你的控制台终端是一个共享资源,你必须用互斥锁保护它,并注意每个线程中的光标定位。您还可以将一个线程声明为老板,其光标位置由另一个线程恢复。然后,另一个线程将在获取互斥锁后,执行 getcurx、getcury 之类的操作,进行自己的定位和输出,然后恢复使用 getcurx/y 检索到的光标位置。
请注意,在每种情况下,所有线程都需要在访问终端之前获取互斥锁。
您还可以检查是否可以使用 ncurses 中的内置线程支持,注意use_screen、use_window