在C中的坐标处打印字符



我想用C为Linux编写一个类似vi的文本编辑器(只是作为个人练习(,我意识到如果我能在C中的精确位置打印一个字符,那将非常有用。标准库中有函数可以实现这一点吗?类似于:

int PrintAt(int x, int y, char c);
一个简单的方法是使用ANSI转义序列。有一个序列可以将光标移动到XY位置,然后您可以在那里打印内容。

转义序列如下所示:33[x;yHx和y是位置,所以为了方便地移动位置,你可以定义一个简单的宏来完成任务,或者把它放在你的函数中。

宏方式:#define cursorXY(x,y) printf("33[%d;%dH",(x),(y))

功能方式:

void PrintAt(int x, int y, char c)
{
printf("33[%d;%dH%c", x, y, c);
}

(请注意,屏幕左上角为(0,0(

最新更新