你好
我正在一个需要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。
顺便说一句,请谨慎使用此解决方案,因为这很大程度上取决于运行程序的终端类型。为了获得在终端屏幕上随意移动和“绘制”的广泛终端支持,ncurses
或curses
是最好的选择。但是,他们一开始要挑战。