当前位置: 技术问答>linux和unix
键盘问题
来源: 互联网 发布时间:2015-06-02
本文导语: 在linux下怎么获得键盘的按键码 就像windows下的getch()或者getchar()差不多的。 我的程序在VC下能通过,可是在linux下按键就失去作用了,没有反应。 请高手给我讲讲。 谢谢。 | ...
在linux下怎么获得键盘的按键码
就像windows下的getch()或者getchar()差不多的。
我的程序在VC下能通过,可是在linux下按键就失去作用了,没有反应。
请高手给我讲讲。
谢谢。
就像windows下的getch()或者getchar()差不多的。
我的程序在VC下能通过,可是在linux下按键就失去作用了,没有反应。
请高手给我讲讲。
谢谢。
|
linux下面没有getch函数,自己做一个吧。
得到键盘码可以用下面的方法:
char key[11];
memset(key, 0, 11);
read (0, key, 10);
当然你得有一个linux下的键盘码对应表啦。然后用strcmp等函数比较就可以确定所按键了。
得到键盘码可以用下面的方法:
char key[11];
memset(key, 0, 11);
read (0, key, 10);
当然你得有一个linux下的键盘码对应表啦。然后用strcmp等函数比较就可以确定所按键了。
|
意思是不需要回车?
修改终端属性,用tcsetattr。
修改终端属性,用tcsetattr。
|
楼主想得到什么效果?getchar是标准C库函数,linux下有。
|
struct termios term;
tcgetattr(STDIN_FILENO, &term);
term.c_lflag &= ~ICANON;
tcsetattr(STDIN_FILENO, TCSAFLUSH, &term);
tcgetattr(STDIN_FILENO, &term);
term.c_lflag &= ~ICANON;
tcsetattr(STDIN_FILENO, TCSAFLUSH, &term);
|
不会。坏了我负责,呵呵。
|
搂主,这个应用俺已经做过啦,建议还是自己编一个,然后根据得到的键值调用相应的函数,把模式设计好了就很简单啦,而且以后复用性很广。修改终端属性也是好方法,但是复用性不是很好。
|
?复用性不好?到Windows下不好用。
|
呵呵,就是这个意思啦