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

时间:2017-07-09 10:01:23

标签: c dev-c++ conio

我正在为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可以做些什么。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

也可以使用这个。

#include <windows.h>

void gotoxy(int x,int y){
COORD V={x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), V);
}