C ++ Ncurses如何在ANSI序列中使用printw

时间:2019-05-24 14:40:49

标签: c++ ncurses ansi-escape

在尝试使用ncurses时,我试图使用ANSI转义序列来控制输出文本的颜色,但是printw()及其替代方法都忽略了我的ANSI序列。我必须使用ANSI,因为我将打印使用它们的另一个程序的输出。如何使printw()了解它们?

我正在使用g++ ansitest.cpp -lncurses进行编译,并且尝试比较printfprintw。与printw不同,Printf可以正常工作。

这是我的ansitestncurses.cpp

int main(int argc, char *argv[]) {
    initscr();
    raw();
    keypad(stdscr, TRUE);
    noecho();

    printw("\033[0;31m");
    printw("HELLO");

    getch();
    endwin();
    return 0;
}

这是我的ansitest.cpp

int main(int argc, char *argv[]) {
    printf("\033[0;31m");
    printf("HELLO");
}

我希望结果是一样的,但事实并非如此。 Printw只打印显示的字符,没有颜色。

Printf: HELLO(全部已读)
打印: ^[[0;31mHELLO(无颜色)

0 个答案:

没有答案