3
F11 또는 insand getchr과 같은 키를 캡처하는 방법에 이러한 키가 반환되지 않으며 입력 이벤트의 원시 입력을 허용하는 작업이 없습니다.getch는 -1을 반환합니까?
지금 ncurses/curses를 시도하고 있습니다. C++ 프로그램에서 이러한 키를 캡처 할 수 있습니다.
테스트 내 프로그램은 간단, 그것은 기본적으로 : 나는 최근의 커널을 사용하고 있습니다 ..
#include <stdlib.h>
#include <stdio.h>
#include <curses.h>
int main() {
int car;
while(c != '\b') {
c = getch();
printf("%i", c);
}
return 0;
}
나는 다른 getch() 함수로 물론 같은 사용하지만 -1
무한한 시간을 반환 아치 리눅스에서 표준 터미널 (xterm
에서 테스트 됨)
라이브러리에서이 getch()를 사용하려면 스위치를 켜야합니까?
나는 curses 전문가는 아니지만 ncurses가 특수 키 이스케이프 시퀀스를 변환하고 getch()에서 반환하는 편리한 값을 반환 할 수 있도록'keypad (stdscr, TRUE); '를 호출 할 수도 있습니다. * KEY_ * 매크로. 예 : 'if (getch() == KEY_F0 + 11) {/ * f11 pressed * /}' –
고맙습니다. 내 FN 키는 리눅스에서 어떤 이유로 작동하지 않으므로 테스트 할 수는 없지만 삽입 및 기타 등등의 이상한 것들은 작동하지 않습니다. 커널에서 원시 키보드 입력을 매핑하여 fn + ins 키 및 물건을 일시 중지하려면 : \ – John