C语言专题——从键盘输入一个字符或功能键并判断

时间:2023-01-04 00:22:54
 

/*
通过getch()从键盘输入一个字符

要点:
1、需要在英文模式下输入
2、该函数每次只能输入一个值
3、当读取功能键和方向键时,getch 需要被调用2次,第1次返回0或0xE0,第2次返回实际的键值
4、不能用来读取:CTRL+break*/

程序举例:


#include <conio.h>
#include <stdio.h>
int main()
{
 int c;   
 while(1)
 {
     c=getch();
     if (27==c) break;//按Esc键退出
     if (0==c||0xe0==c) c|=getch()<<8;//非字符键,需要调用2次

  printf("ASCII IS %04x!\n",c);//输出ASCII码值,可以知道你输入的键的键值

  if(13<c&&c<255)    //普通的一些字符
  {
   printf("%c press!\n",c);
   //break;
   continue;
  }

   switch(c)                   //这里只是举了上下左右键,和TAB键,需要其它的键,可以根据上面输出的ASCII码值,自己添加
   {
      case 0x0009:
    printf("TAB press\n");
    //break;
    continue;
   case 0x48E0:
    printf("up press\n");
    //break;
    continue;
   case 0x4be0:
    printf("left  press\n");
    //break;
    continue;
   case 0x4de0:
    printf("right press\n");
    //break;
    continue;
   case 0x50e0:    
    printf("down press\n");
    //break;
    continue;
   }
 }   
 return 0; 
}