Обнаружение ввода клавиш со стрелками в C ++ с использованием curses на платформе Unix не работает после вызова системной команды - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть приложение, в котором пользователь вводит данные и должен иметь возможность перемещаться по экрану с помощью клавиш со стрелками. теперь я использовал библиотеку curses, но у меня возникла проблема с обнаружением стрелок после вызова системной команды

system("more filename);

Мне удалось обнаружить их до вызова этой команды. но потом, даже после попытки снова включить клавиатуру с помощью

keypad(scrn, TRUE);

это не работает.

есть предложения? спасибо :) 1009 *

1 Ответ

2 голосов
/ 29 сентября 2011

Попробуйте совет здесь: http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/misc.html#TEMPLEAVE

Иногда вам может понадобиться временно вернуться в режим приготовления (обычный режим буферизации линии).В таком случае вам сначала нужно сохранить режимы tty с вызовом def_prog_mode (), а затем вызвать endwin () для завершения режима curses.Это оставит вас в оригинальном режиме tty.Чтобы вернуться к проклятиям, когда вы закончите, вызовите reset_prog_mode ().Эта функция возвращает tty в состояние, хранящееся в def_prog_mode ().Затем выполните refresh (), и вы вернетесь в режим curses.

...