首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

linux上KEY_UP和KEY_DOWN的十进制到底是多少

2012-08-24 
linux下KEY_UP和KEY_DOWN的十进制到底是多少?用getchar()从linux下获取输入,返回的十进制中,貌似F11,F12,K

linux下KEY_UP和KEY_DOWN的十进制到底是多少?
用getchar()从linux下获取输入,返回的十进制中,貌似F11,F12,KEY_UP,RIGHT,DOWN,LEFT都是返回27,怎么回事?要识别linux下的KEY_UP四个方向键,到底是什么十进制值啊?

[解决办法]
那些键都是一个值序列,以27开始

这个你估计需要使用 curses 库来编程

#include <curses.h>
main()
{
initscr();
keypad(stdscr, true);
printw("%d", getch());
refresh();
endwin();
}

编译
gcc a.c -o tt -lncurses

执行./tt
[解决办法]

探讨
用getchar()从linux下获取输入,返回的十进制中,貌似F11,F12,KEY_UP,RIGHT,DOWN,LEFT都是返回27,怎么回事?要识别linux下的KEY_UP四个方向键,到底是什么十进制值啊?

[解决办法]
L10我已经告诉了你为什么使用curses/ncurses后,printf的内容就不见了。再强调一句,不管是printf还是其他函数,其实它们底层都是基于curses/ncurses的,而curses操作的核心概念是窗口(windows),对,就是窗口,这个窗口和Microsoft的窗口概念是完全一致的。

因为你的标题是linux,而linux下缺省是ncurses来的,而你一直在说的是curses。

至于到底怎样实现读取和区分这些键值,我在L3已经答复了,LZ应该先仔细想想和试试。对L3的答复,实际上本人已经完整实现过的,包括在各种主流的unix/linux下。如果LZ想要源代码,可以提供有偿服务。我实现了curses下windows的大部分界面控件(比如菜单、文本框、编辑框、按钮之类),但没有鼠标模拟操作。

顺便说一句,看看unix的版本历史,microsoft在SYSV上是有版权的,而linux的前身是unix演变来的。我甚至怀疑windows的概念应该是来源于unix的,只是在unix的基础上加入了鼠标。

所以,有没有认真看你的问题,你自己去衡量。你有没有认真看答复,也需要你自己去衡量。



[解决办法]
探讨

那些键都是一个值序列,以27开始

这个你估计需要使用 curses 库来编程

#include <curses.h>
main()
{
initscr();
keypad(stdscr, true);
printw("%d", getch());
refresh();
endwin();
}

编译
gcc a.c -o tt -lncurses

执行./……

热点排行