如何在 ncurses 程序中实现 256 色

如何在 ncurses 程序中实现 256 色

我正在尝试运行 Dan Gookin 所著的《NCurses 程序员指南》一书中的第 41 页中的清单 3-5。

#include <ncurses.h>
#define NEW_COLOR 1
#define RED 0
#define GREEN 750
#define BLUE 750
int main(void)
{
    initscr();
    start_color();
    if (!can_change_color())
    addstr("This probably won't work, but anyway:\n");

    init_color(NEW_COLOR, RED, GREEN, BLUE);

    init_pair(1, NEW_COLOR, COLOR_BLACK);
    attrset(COLOR_PAIR(1));
    printw("This is the new color %d.\n", NEW_COLOR);
    refresh();
    getch();

    endwin();
    return 0;
}

我尝试用以下方法编译它:

gcc -o Listing3-5color_me Listing3-5color_me.c -lncurses

gcc -o Listing3-5color_me Listing3-5color_me.c -lncursesw

在这两种情况下,程序都可以编译并运行,但无法显示正确的颜色。它显示“正常”的红色,即前 8 种或前 16 种颜色的一部分。

我知道我的 Ubuntu 16.04 上的终端(konsole)可以显示 256 种颜色,因为我见过其他不使用 ncurses 的 C 程序显示 256 种颜色。

如何让我的 ncurses 程序使用 256 种颜色?

相关内容