2015-04-07 2 views
0

Я пытался найти решение этого в течение довольно долгого времени; Я не могу получить окно терминала, чтобы распознать клавиатуру.ncurses Не распознает макросы со стрелкой

Вот мой код:

while (1){ 
    if (cmd != ERR) { 
     printw("Controls: LEFT/RIGHT and SPACEBAR (Q TO QUIT)"); 
     if (cmd == ' '){ 
     // Stuff 
     } 
     else if (cmd == KEY_LEFT){ 
     // Stuff 
     } 
     else if (cmd == KEY_RIGHT){ 
     // Stuff 
     } 
     else if (cmd == 'q'){ 
     // Stuff 
     } 
     refresh(); 
    } 
    cmd = getchar(); 
    } 

Он признает, что я вхожу в пространство (случай 1) или «Q» (случай 4), но он не распознает встроенные проклятия макросов. Я использую для этого обычный C, а не C++. Какие-либо предложения?

ответ

0

Эти константы возвращаются только getch(), если вы включаете клавиатуру.

Функция подписи:

int keypad(WINDOW *win, bool bf) 

keypad(win, true) позволяет клавиатуры и keypad(win, false) отключает его. win - указатель на окно, в котором вызывается getch().

+0

Вероятно, OP просто использует 'getch()' без передачи указателя 'WINDOW', поэтому' keypad (stdscr, TRUE) 'будет обычной рекомендацией. Обратите внимание, что проклятия определяют «ИСТИННЫЙ», а не «истинный» (два равны, если ncurses правильно настроены). –

+0

Я использую 'keypad (stdscr, TRUE)' и он все равно не влияет на распознавание клавиш со стрелками. Я пробовал пройти ИСТИННУЮ и правдивую безрезультатно. – user3245474

 Смежные вопросы

  • Нет связанных вопросов^_^