我正在編寫一個涉及用戶從鍵盤輸入的應用程序。對於這樣做我用的讀取輸入這樣:鍵盤輸入:如何分離從用戶接收的鍵碼
#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工作正常的字母數字,標籤,但hiting DEL,左,CTRL +左鍵,F8(及其他)時,我收到了不是一個而是3, 4,5甚至6個鍵碼。
問題是:是否可以對這些鍵碼進行分離(實際上知道我只敲一個鍵或組合鍵)。
我想要的是一個函數返回一個單個任何類型的輸入(字母,數字,F1-F12,DE1,PGUP,PGDOWN,CTRL + A,CTRL + ALT + A ,ALT + LEFT等)。這可能嗎?
我對這個想法感興趣,語言並不重要,儘管我更喜歡perl或c。
感謝,
尤利安
我無法在網上找到相關信息。你有鏈接還是一個簡單的例子?謝謝 – INS 2010-05-07 19:03:43
http://tinyurl.com/23lqrs5 – nategoose 2010-05-07 19:32:19
我會認爲這是最好的答案。謝謝 – INS 2010-05-10 07:59:52