我正在写一个基于ncurses的文本应用程序。我有一个名为colorPlot的函数:
void colorPlot(int x, int y, int foregroundColor, int backgroundColor, char plotChar)
{
init_pair(0, foregroundColor, backgroundColor);
attrset(COLOR_PAIR(0));
mvaddch(y, x, plotChar);
}
但每当我尝试在我的主要功能中调用它时:
int main(void) {
initscr();
start_color();
colorPlot(1, 1, COLOR_RED, COLOR_WHITE, '@');
refresh();
getch();
endwin();
}
它只打印黑底白字。为什么不打印红白色?
答案 0 :(得分:1)
颜色对0(参见start_color手册)保留:
颜色对0是特殊的;它表示“没有颜色”。
假设颜色对0在黑色上是白色的,但是 实际上终端在颜色之前实现了什么 已初始化。它不能被应用程序修改。