Не работает настройка цвета в ncurses

В моём терминале используется виртуальный терминал xterm-256colors, соответственно, цвет он поддерживает.

Пишу такую программу:

#include <ncurses.h>

int main() {
    initscr();
    curs_set(0);
    move(0, 0);
    init_pair(1, COLOR_RED, COLOR_GREEN);
    attrset(COLOR_PAIR(1));
    addstr("Red on green");
    refresh();
    getch();
    endwin();
}

Вместо красной надписи на зелёном фоне выводится белая на чёрном. Почему так?


Ответы (1 шт):

Автор решения: Имя Фамилия

Перед вызовом функции init_pair(short,short,short) необходимо вызвать функцию start_color().
Без этого вызова цвета не будут отображаться, а если вызвать эту функцию после функции init_pair, то отображаться не будет вообще ничего (из-за установки атрибута COLOR_PAIR(1)). Благо в таком случае можно снова вызвать init_pair уже после start_color, и всё встанет на свои места. Дальнейшие вызовы start_color ни на что не влияют.

→ Ссылка