我正在编写一个涉及用户从键盘输入的应用程序。对于这样做我用的读取输入这样:键盘输入:如何分离从用户接收的键码
#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