1

我需要使用 C 中的 termcaps 获取终端光标的 (Y, X) 位置。

随着ioctl()我得到我的终端屏幕的大小,但我仍然需要得到我的光标所在的位置。

我找到了这个 :

CSI 6 n DSR – 设备状态报告 将光标位置报告给应用程序(就像在键盘上键入一样)ESC[n;mR,其中 n 是行,m 是列。(可能不适用于 MS-DOS。)

但我不知道如何在 C 中使用它...

4

2 回答 2

4

<ESC>[6n您使用正常输出将命令序列 () 写入终端stdout。然后,您使用来自 的正常输入读取响应stdin

您需要解析“回复”来挑选职位。

于 2016-01-12T14:48:05.420 回答
-3

这是一个gotoxy()函数,可以在 gcc linux 中指定的xy位置打印

#include<stdio.h>
//gotoxy function
void gotoxy(int x,int y)
{
printf("%c[%d;%df",0x1B,y,x);
}
main ()
{
gotoxy(25,50); //reposition cursor
printf("hello world"); //display text
}

这是控制台输入和输出的参考,如果您使用的是 windows 终端(dos 提示符)

于 2016-01-12T15:10:56.020 回答