gpt4 book ai didi

c - gotoxy() 函数使用 printf() 的位置

转载 作者:太空狗 更新时间:2023-10-29 11:33:04 26 4
gpt4 key购买 nike

你好
我正在做一个需要 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时,光标在第一行
我想知道为什么当 i = 1 时光标不转到第二行?

最佳答案

OP:“为什么需要更改 x y 顺序”。
光标位置命令格式为

Force Cursor Position   <ESC>[{ROW};{COLUMN}f

出现需要是因为要匹配该格式并将您的y变量作为ROWy来了第一的。 (您可以将屏幕旋转 90 度)。

OP:当 i = 1 时,为什么光标不转到第二行?
起始位置位于屏幕的 左侧,是原点,即第 1 行,1

注意:格式中可以放转义符,

printf("\x1B[%d;%df", y, x);
fflush(stdout); // @jxh

关于c - gotoxy() 函数使用 printf() 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18425748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com