Для получения звука можно вызвать функцию beep
beep заставят экран мигать. Если вы работаете в густонаселенном офисе и звуковые сигналы могут издавать многие компьютеры, возможно, вы сочтете мигание предпочтительным режимом. Как и ожидалось, функция flash вызывает мигание экрана, если это невозможно, она попробует заставить терминал издать звуковой сигнал взамен.Считывание с экрана
Вы можете считывать символы с экрана, хотя эта функциональная возможность применяется нечасто, поскольку гораздо легче отслеживать то, что выводится. Если вам все-таки это потребуется, выполняйте считывание с помощью следующих функций:
#include
chtype inch(void);
int instr(char *string);
int innstr(char *string, int number_of_characters);
Функция inch
instr и innstr не всегда поддерживаются. Функция inch возвращает символ из текущей позиции курсора на экране и данные о его атрибутах. Обратите внимание на то, что функция возвращает значение не char, a chtype, в то время как функции instr и innstr пишут в массивы с элементами типа char.Очистка экрана
Существует четыре основных способа очистки области экрана:
#include
int erase (void);
int clear(void);
int clrtobot(void);
int clrtoeol(void);
Функция erase
clear, как и erase, очищает экран, но вызывает перерисовку экрана с помощью внутреннего вызова низкоуровневой функции clearok, которая выполняет последовательность очистки экрана и новое отображение экрана при следующем вызове refresh.Функция clear
clear надежным средством очистки экрана. Сочетание функции clear с последующей функцией refresh может обеспечить удобную команду перерисовки экрана в том случае, когда изображение на экране беспорядочно или испорчено каким-либо образом.Функция clrtobot
clrtoeol очищает экран, начиная с текущей позиции курсора до конца строки, в которой находится курсор.Перемещение курсора
Для перемещения курсора применяется единственная функция с дополнительной командой, управляющей положением курсора после обновления экрана.
#include
int move(int new_y, int new_x);
int leaveok(WINDOW *window_ptr, bool leave_flag);
Функция move
LINES и COLUMNS, определяют размер физического экрана и могут применяться для определения максимально допустимых значений параметров new_y и new_x. Вызов move сам по себе не приводит к перемещению физического курсора. Он только изменяет позицию на логическом экране, в которой появится следующий вывод. Если вы хотите, чтобы экранный курсор переместился немедленно после вызова функции move, вставьте следом за ним вызов функции refresh.Функция leaveok
false, и после вызова refresh аппаратный курсор остается в той же точке экрана, что и логический курсор. Если флаг равен true, аппаратный курсор можно оставить в случайно выбранной точке экрана. Как правило, значение, устанавливаемое по умолчанию, предпочтительней, т.к. курсор остается в не лишенной смысла позиции.Атрибуты символов
У всех символов, обрабатываемых curses, могут быть определенные атрибуты, управляющие способом отображения символа на экране при условии, что оборудование, применяемое для их отображения, поддерживает требуемый атрибут. Определены следующие атрибуты: A_BLINK
A_BOLD, A_DIM, A_REVERSE, A_STANDOUT и A_UNDERLINE. Вы можете использовать перечисленные далее функции для установки атрибутов по одному или все вместе.#include
int attron(chtype attribute);
int attroff(chtype attribute);
int attrset(chtype attribute);
int standout(void);
int standend(void);