1

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

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在我的代码中使用什么。

4

2 回答 2

4

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

这是修改后的代码:

#include <stdio.h>

void gotoxy(int x, int y) {
    printf("\033[%d;%dH", y, x);
}

int main(void) {
    gotoxy(20, 10);
    printf("Hello\n");
    return 0;
}
于 2017-07-09T10:21:55.260 回答
0

也可以使用这个。

#include <windows.h>

void gotoxy(int x,int y){
COORD V={x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), V);
}
于 2021-06-19T16:19:16.273 回答