gotoxy() 函数替代 Dev C 不起作用



我正在寻找 Dev C++ v5.11(gcc 编译器(的gotoxy替代品,并发现了这个:

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

在此之后,当我尝试调用此函数时,如下所示:

int main() {
gotoxy(20, 10);
printf("Hello");
return 0;
}

输出与预期不符:

<-[10;20fHello

这是打印在屏幕的最左上角(即 1,1( 而不是 (20,10(。

请给我建议,我可以在我的代码中使用gotoxy

您的ANSI转义序列不正确,应该33[%d;%dH,但似乎您的终端根本不支持ANSI VT100转义序列。在Windows中,可能有一个配置设置来启用它,VT100仿真是大多数现代操作系统终端(UNIX,Linux,BSD,OS/X...(的标准配置。

以下是修改后的代码:

#include <stdio.h>
void gotoxy(int x, int y) {
printf("33[%d;%dH", y, x);
}
int main(void) {
gotoxy(20, 10);
printf("Hellon");
return 0;
}

也可以使用它。

#include <windows.h>
void gotoxy(int x,int y){
COORD V={x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), V);
}

最新更新