gpt4 book ai didi

linux - 如何在 Linux 中获取当前终端的当前光标位置?

转载 作者:太空宇宙 更新时间:2023-11-04 12:06:03 25 4
gpt4 key购买 nike

我正在用 C 语言制作俄罗斯方 block 游戏。该游戏必须在 Linux 上运行。我需要获取当前光标位置才能返回它们。我不想使用 curses 和 ncurses。

point GetCurrentCursorPos(void)
{
point curPoint;
CONSOLE_SCREEN_BUFFER_INFO curInfo;

GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &curInfo);
curPoint.x=curInfo.dwCursorPosition.X;
curPoint.y=curInfo.dwCursorPosition.Y;

return curPoint;
}

这是我要更改的代码。

点结构看起来像这样。

typedef struct __point 
{
int x;
int y;
} point;

非常感谢您的帮助!

最佳答案

如果您真的不想使用 (n)curses,您将无法直接与终端交互。您可以使用 VT100 DSR 序列请求光标位置报告——写入字符

"\e[6n"

到终端,它会用类似于以下的序列回复:

"\e[12;34R"

表示光标在第12行第34列(例如)。该序列与用户输入内联发送,因此您可能需要采取特殊的预防措施,以避免在尝试获取光标位置时消耗用户输入……

不用说,这是一个笨拙的界面,您最好从一开始就避免使用它。在代码中跟踪光标的位置,您无需询问终端它在哪里。

关于linux - 如何在 Linux 中获取当前终端的当前光标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50664524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com