Как я обнаруживаю клавиши со стрелками, нажатые с помощью проклятий в C?

В попытке, которая будет введена от клавиш со стрелками через проклятия (ncurses) это, не поймает как KEY_UP и т.д. Я использовал функцию клавиатуры с истинным аргументом, но getch все еще возвратил завершенную последовательность. Как я смещаюсь через значения, возвращенные getch (), и захватываю клавиши со стрелками конкретно?

17
задан Saurav Pathak 27 September 2019 в 09:23
поделиться

3 ответа

Я хранил вызовы getch () как char, тогда как они должны были быть int. Прекрасно работает после переключения.

14
ответ дан 30 November 2019 в 12:00
поделиться

Стандартные (похожие на VT100) терминалы отправляют последовательность символов при нажатии клавиш со стрелками. Вам просто нужно следить за тем, нажимаются они последовательно или нет. Вот символы, на которые следует обратить внимание:

Down Arrow  0x1B 0x5B 0x42
Left Arrow  0x1B 0x5B 0x44
Right Arrow 0x1B 0x5B 0x43
Up Arrow    0x1B 0x5B 0x41
7
ответ дан 30 November 2019 в 12:00
поделиться

Я обнаружил ту же проблему в Mac OS X. Но она была решена добавлением следующего:

keypad(stdscr, TRUE);
14
ответ дан 30 November 2019 в 12:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: