В попытке, которая будет введена от клавиш со стрелками через проклятия (ncurses) это, не поймает как KEY_UP и т.д. Я использовал функцию клавиатуры с истинным аргументом, но getch все еще возвратил завершенную последовательность. Как я смещаюсь через значения, возвращенные getch (), и захватываю клавиши со стрелками конкретно?
Я хранил вызовы getch ()
как char, тогда как они должны были быть int. Прекрасно работает после переключения.
Стандартные (похожие на VT100) терминалы отправляют последовательность символов при нажатии клавиш со стрелками. Вам просто нужно следить за тем, нажимаются они последовательно или нет. Вот символы, на которые следует обратить внимание:
Down Arrow 0x1B 0x5B 0x42
Left Arrow 0x1B 0x5B 0x44
Right Arrow 0x1B 0x5B 0x43
Up Arrow 0x1B 0x5B 0x41
Я обнаружил ту же проблему в Mac OS X. Но она была решена добавлением следующего:
keypad(stdscr, TRUE);