Книга: Основы программирования в Linux

Вывод на экран

Вывод на экран

Для обновления экрана предоставляется несколько базовых функций.

#include <curses.h>
int addch(const chtype char_to_add);
int addchstr(chtype *const string_to_add);
int printw(char *format, ...);
int refresh(void);
int box(WINDOW *win_ptr, chtype vertical_char, chtype horizontal_char);
int insch(chtype char_to_insert);
int insertln(void);
int delch(void);
int deleteln(void);
int beep(void);
int flash(void);

У библиотеки curses есть свой символьный тип данных chtype, который может содержать больше разрядов, чем стандартный тип char. В стандартной версии ncurses для ОС Linux chtype на самом деле — синоним стандартного типа unsigned long.

Функции addch и addchstr вставляют заданные символ или строку в текущую позицию на экране. Функция printw форматирует строку так же, как функция printf, и помещает в текущую позицию на экране. Функция refresh вызывает обновление физического экрана, возвращая OK в случае успеха и ERR при возникновении ошибки. Функция box позволяет нарисовать рамку вокруг окна.

Примечание

В стандартной библиотеке curses вы можете применять только "обычные" символы для рисования горизонтальных и вертикальных линий. В расширенной версии библиотеки можно использовать два определения, ASC_VLINE и ACS_HLINE, для вывода символов вертикальных и горизонтальных линий соответственно, которые позволят нарисовать внешне более привлекательную рамку. Для этого ваш терминал должен поддерживать символы псевдографики. Обычно они лучше отображаются в окне эмулятора xterm, чем на стандартной консоли, но их поддержка полна корректировок или "заплат", поэтому мы полагаем, что вы откажетесь от их применения, если важна переносимость вашей программы.

Функция insch вставляет символ, сдвигая имеющиеся символы вправо. При этом не определено, что произойдет в конце строки, результат зависит от используемого терминала. Функция insertln вставляет пустую строку, перемещая имеющиеся строки на одну вниз. Функции delch и deleteln аналогичны функциям insert.

Для получения звука можно вызвать функцию beep. Немногие терминалы не способны издавать звуки, в этом случае некоторые установки библиотеки curses при вызове beep заставят экран мигать. Если вы работаете в густонаселенном офисе и звуковые сигналы могут издавать многие компьютеры, возможно, вы сочтете мигание предпочтительным режимом. Как и ожидалось, функция flash вызывает мигание экрана, если это невозможно, она попробует заставить терминал издать звуковой сигнал взамен.

Оглавление книги


Генерация: 0.581. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз