你好
我正在一个需要gotoxy()函数的项目
我读过gotoxy() implementation for Linux using printf

我不知道为什么

void gotoxy(int x,int y)
{
    printf("%c[%d;%df",0x1B,y,x);
}

需要更改printf中的x y顺序,是否只是为了适合坐标系?
以我的方式,我将其更改为printf("%c[%d;%df",0x1B,x,y)以满足我的需求

在我在for循环中使用此gotoxy()期间,如下所示:

for( int i = 0; i < 12; i++ ) {
        for( int j = 0; j < 12; j++ ) {
            gotoxy( i , j );
            usleep(500000);
        }
    }

当i = 0和i = 0时,光标在第一行
我想知道为什么当我= 1时光标不能转到第二行吗?

最佳答案

x和y的顺序很重要,因为变量的名称对gotoxy()函数的操作没有意义。

该功能正在输出一个终端命令序列,该命令序列将移至指定坐标。当终端看到该命令序列并对其进行处理时,首先应为y。

顺便说一句,请谨慎使用此解决方案,因为这很大程度上取决于运行程序的终端类型。为了获得在终端屏幕上随意移动和“绘制”的广泛终端支持,ncursescurses是最好的选择。但是,他们一开始要挑战。

10-05 21:34