一个在linux下的键盘字符识别程序
2011-11-22 13:51
295 查看
一 软件说明:在linux下ubuntu9.11下运行:gcc keypad1.c -o keypad1 lcurses
:./keypad1
二 可以用这个软件锻炼自己的打字说平,每按下一个键盘上面的字符。屏幕上就会显示该字符。
代码://该程序用于锻炼键盘打字水平
#include <unistd.h>
#include <stdlib.h>
#include <curses.h>
#define LOCAL_ESCAPE_KEY 27
int main()
{
int key;
initscr();
crmode();
keypad(stdscr,TRUE);
noecho();
clear();
mvprintw(5,5,"Key pad demonstration. Press 'q' to quit");
move(7,5);
refresh();
key=getch();
while(key!=ERR && key!='q'){
move(7,5);
clrtoeol();
if((key>='A'&&key<='Z')||(key>='a'&&key<='z')){
printw("key was %c",(char)key);
}
else if((key>='0'&&key<='9')){
printw("key was %c",(char)key);
}
else
{
switch(key){
case LOCAL_ESCAPE_KEY:printw("%s","Escape key");break;
case KEY_END:printw("%s","END_KEY");break;
case KEY_BEG:printw("%s","BEG_KEY");break;
case KEY_RIGHT:printw("%s","RIGHT_KEY");break;
case KEY_LEFT:printw("%s","LEFT_KEY");break;
case KEY_UP:printw("%s","UP_KEY");break;
case KEY_DOWN:printw("%s","DOWN_KEY");break;
case 9:printw("%s","Tab key");break;
case 13:printw("%s","Enter key");break;
case 20:printw("%s","Caps Lock");break;
case 10:printw("%s","ENTER");break;
case 17:printw("%s","ctrl");break;
case 18:printw("%s","Alt");break;
case 32:printw("%s","VK_SPACE");break;
case 8:printw("%s","back");break;
case 91:printw("%s","[");break;
case 92:printw("%s","|);break;
case 93:printw("%s","]");break;
case 96:printw("%s","~");break;
case 45:printw("%s","-");break;
case 262:printw("%s","Home");break;
case 263:printw("%s","Backspace");break;
case 331:printw("%s","insert");break;
case 339:printw("%s","Page Up");break;
case 338:printw("%s","Page down");break;
case 330:printw("%s","Delete");break;
case 39:printw("%s"," feihao ");break;
case 61:printw("%s"," = ");break;
case 59:printw("%s",":");break;
case 44:printw("%s","<");break;
case 46:printw("%s",">");break;
case 47:printw("%s","?");break;
default:printw("Unmatched-%d",key);break;
}
}
refresh();
key=getch();
}
endwin();
exit(EXIT_SUCCESS);
}
:./keypad1
二 可以用这个软件锻炼自己的打字说平,每按下一个键盘上面的字符。屏幕上就会显示该字符。
代码://该程序用于锻炼键盘打字水平
#include <unistd.h>
#include <stdlib.h>
#include <curses.h>
#define LOCAL_ESCAPE_KEY 27
int main()
{
int key;
initscr();
crmode();
keypad(stdscr,TRUE);
noecho();
clear();
mvprintw(5,5,"Key pad demonstration. Press 'q' to quit");
move(7,5);
refresh();
key=getch();
while(key!=ERR && key!='q'){
move(7,5);
clrtoeol();
if((key>='A'&&key<='Z')||(key>='a'&&key<='z')){
printw("key was %c",(char)key);
}
else if((key>='0'&&key<='9')){
printw("key was %c",(char)key);
}
else
{
switch(key){
case LOCAL_ESCAPE_KEY:printw("%s","Escape key");break;
case KEY_END:printw("%s","END_KEY");break;
case KEY_BEG:printw("%s","BEG_KEY");break;
case KEY_RIGHT:printw("%s","RIGHT_KEY");break;
case KEY_LEFT:printw("%s","LEFT_KEY");break;
case KEY_UP:printw("%s","UP_KEY");break;
case KEY_DOWN:printw("%s","DOWN_KEY");break;
case 9:printw("%s","Tab key");break;
case 13:printw("%s","Enter key");break;
case 20:printw("%s","Caps Lock");break;
case 10:printw("%s","ENTER");break;
case 17:printw("%s","ctrl");break;
case 18:printw("%s","Alt");break;
case 32:printw("%s","VK_SPACE");break;
case 8:printw("%s","back");break;
case 91:printw("%s","[");break;
case 92:printw("%s","|);break;
case 93:printw("%s","]");break;
case 96:printw("%s","~");break;
case 45:printw("%s","-");break;
case 262:printw("%s","Home");break;
case 263:printw("%s","Backspace");break;
case 331:printw("%s","insert");break;
case 339:printw("%s","Page Up");break;
case 338:printw("%s","Page down");break;
case 330:printw("%s","Delete");break;
case 39:printw("%s"," feihao ");break;
case 61:printw("%s"," = ");break;
case 59:printw("%s",":");break;
case 44:printw("%s","<");break;
case 46:printw("%s",">");break;
case 47:printw("%s","?");break;
default:printw("Unmatched-%d",key);break;
}
}
refresh();
key=getch();
}
endwin();
exit(EXIT_SUCCESS);
}
相关文章推荐
- 编写一个程序从键盘输入字符,并按要求输出
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函
- Linux_C练习:输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来。提示:帧头和帧尾分别是head和tail 字符串”asdheadhauboisoktai
- 从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- .编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 每日一题第一题:编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字就不输出
- C语言编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- c语言:编写一个程序,可以直接接收键盘字符
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 汇编语言: 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,
- linux 不回车直接读取一个字符的方法(termios结构的描述了终端的模式,在这段代码中我们改变了它,使得终端能够接收到键盘输入马上返回。)
- 在linux中用C程序实现读取一个文件中的字符,计算它的个数,并把个数显示在另外一个文件夹内
- arm9板子上写了一个小程序:手写数字及英文大小写字符的识别
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
- 编写一个程序从键盘输入字符,并按要求输出
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。