我写了这个简单的程序来检测按键事件。但对于所有上,下,左,右和esc键,其返回27 !!所以无法区分,哪个键已经按下了。
#include<iostream>
#include<stdio.h>
#include<termios.h>
using namespace std;
static struct termios oldSettings,newSettings;
void initTermios(bool echo)
{
tcgetattr(0,&oldSettings);
newSettings=oldSettings;
newSettings.c_lflag &=~ICANON;
newSettings.c_lflag &= echo ? ECHO : ~ECHO;
tcsetattr(0,TCSANOW,&newSettings);
}
void resetTermios(void)
{
tcsetattr(0,TCSANOW,&oldSettings);
}
char getch(bool echo)
{
initTermios(echo);
char c=getchar();
resetTermios();
return c;
}
int main()
{
int i=getch(false);
cout<<i<<endl;
return 0;
}
我想要做些什么来消除这种含糊之处?