키보드에서 사용자 입력과 관련된 응용 프로그램을 작성하고 있습니다. 그 일을 위해 내가 입력 읽기의 방법을 사용키보드 입력 : 사용자로부터받은 키 코드를 분리하는 방법
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
int mygetch() {
struct termios oldt,
newt;
int ch;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
return ch;
}
int main(void)
{
int c;
do{
c = mygetch();
printf("%d\n",c);
}while(c!='q');
return 0;
}
Everyting는 문자 숫자, 탭하지만 잘 동작을 나는 1 만 3받지 아니 DEL, LEFT, CTRL + LEFT, F8 (및 기타) hiting 때, 4,5 또는 심지어 6 키 코드.
질문 :이 키 코드를 분리 할 수 있습니까? 실제로 하나의 키 또는 키 조합 만 누르는 것이 사실입니다. 싶습니다 어떤
는모든 입력 형식 (문자, 숫자, F1-F12, DEL PGUP, PGDOWN, CTRL + A, CTRL + ALT + A하는 단일 정수 값을 반환하는 기능을 가지고있다 , ALT + LEFT 등). 이것이 가능한가?
저는이 아이디어에 관심이 있습니다. 언어는별로 중요하지 않지만 perl이나 c를 선호합니다. 당신은 ANSI 이스케이프 코드를 받고있는 것처럼
감사합니다,
이 울리
웹에서 관련 정보를 찾을 수 없습니다. 링크 또는 간단한 예가 있습니까? 감사합니다 – INS
http://tinyurl.com/23lqrs5 – nategoose
나는 이것을 최고의 대답으로 생각할 것입니다. 감사 – INS