我正在尝试运行 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 种颜色?