Я пытаюсь напечатать символы, которые не входят в расширенную таблицу ASCII, в ncurses, но printw () поддерживает только печатаемые символы длиной 8 бит. printf (), однако, позволяет печатать символы выше 8 бит. Я хочу использовать функции ncurses, такие как move (), чтобы переместить расположение моего курсора, а также использовать printf () для печати символов выше 8 бит.
Есть несколько способов решения этой проблемы.
1) Каким-то образом разрешить вывод в режиме ncurses для символов выше 8 бит. Это включает в себя printw (), addch (), wprintw () и др. c. Я задавал вопросы по этой теме c раньше, с ограниченным результатом. addch () в моем компиляторе Ubuntu выведет некоторые значения ASCII выше 8 бит, но не все из них. Такие функции, как
addch(ACS_S1); addch(ACS_LANTERN);
, не распечатывают символ, а скорее распечатывают
⍰
2) У printf () одновременно работают функции ncurses, такие как move () и init_color (), чтобы я мог печатать символы выше 8 бит. Причина, по которой у меня возникают проблемы, заключается в том, что когда вы используете refre sh () в ncurses, он очищает нижний экран, заменяя его на используемое вами окно. printf () либо будет уничтожен, либо не будет работать вместе с move (). Я думаю, что может существовать функция перемещения, которая перемещает курсоры по заданным значениям c windows, что в этом случае может привести к перемещению печати, но я не знаю ни функции, ни экрана, на котором printf находится
Я использую Ubuntu, если это является частью проблемы. Я не думаю, что это так, но я включаю это только в случае. Любая помощь будет принята с благодарностью.