#include <stdio.h>
#include <termio.h>      //终端操作头文件

char getch(void)
{
     struct termios tm, tm_old;
     int fd = 0, ch;
 
     if (tcgetattr(fd, &tm) < 0) {    //保存现在的终端设置
          return -1;
     }
 
     tm_old = tm;
     cfmakeraw(&tm);    //更改终端设置为原始模式,该模式下所有的输入数据以字节为单位被处理
     if (tcsetattr(fd, TCSANOW, &tm) < 0) {    //设置上更改之后的设置
          return -1;
     }
 
     ch = getchar();
     if (tcsetattr(fd, TCSANOW, &tm_old) < 0) {    //更改设置为最初的样子
          return -1;
     }
    
     return (char)ch;
}

int main(void)
{
    char ch;
    while((ch = getch()) != 0x0D && ch != 0x1B) {
        printf("%x", ch);
    }
    printf("\n");
    return 0;
}

posted on 2016-09-06 20:44  wan_ghuan  阅读(690)  评论(0编辑  收藏  举报