我需要使用 C 中的 termcaps 获取终端光标的 (Y, X) 位置。
随着ioctl()
我得到我的终端屏幕的大小,但我仍然需要得到我的光标所在的位置。
我找到了这个 :
CSI 6 n DSR – 设备状态报告 将光标位置报告给应用程序(就像在键盘上键入一样)ESC[n;mR,其中 n 是行,m 是列。(可能不适用于 MS-DOS。)
但我不知道如何在 C 中使用它...
<ESC>[6n
您使用正常输出将命令序列 () 写入终端stdout
。然后,您使用来自 的正常输入读取响应stdin
。
您需要解析“回复”来挑选职位。
这是一个gotoxy()
函数,可以在 gcc linux 中指定的x和y位置打印
#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 提示符)