在c ++中获得模糊的keypress事件

时间:2013-07-11 11:19:01

标签: c++ operating-system

我写了这个简单的程序来检测按键事件。但对于所有上,下,左,右和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;

}

我想要做些什么来消除这种含糊之处?

0 个答案:

没有答案