C语言之控制台读取上下左右方向键指令

Posted cnb_yangwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言之控制台读取上下左右方向键指令相关的知识,希望对你有一定的参考价值。

首先,可以检测任何按键键值

// 首先,检测任何按键的代码 
#include<stdio.h>
#include<conio.h>
int main()
{    
    char ch;
    while((ch=getch())!=0x1B) /* ESC to quit */
{
   printf("%d \\n", ch);
}
 } 

分别是上下左右键的键值。

其次,控制台读取方向键指令

方法一

//捕捉键值
 #include<stdio.h>
 #include<conio.h>
 int main()
 {
 
   int ch;
   while( (ch=getch())!=0x1B ) /* Press ESC to quit... */
   {
      switch(ch)
      {
      case 0xE0:
         switch(ch=getch())
         {
            case 72:  printf("UP\\n"); break;
            case 80:  printf("DOWN\\n"); break;
            case 75:  printf("LEFT\\n"); break;
            case 77:  printf("RIGHT\\n"); break;
            default:
               break;
         }
         break;
      default:
         break;
      }
   }
}

方法二

#include <stdio.h> 
#include <stdlib.h>   
#include <conio.h>
#include <windows.h>
int main()
{
    char key;
    while(1)
    {    
    //    int t=1;
        key=getch();
        switch(key)
        {
        case -32:
            key=getch();
            switch(key)
            {
            case 72:
                printf("UP\\n");break;
            case 80:
                printf("DOWN\\n");break;
            case 75:
                printf("LEFT\\n");break;    
            case 77:
                printf("RIGHT\\n");break;
            case -123:
                                printf("F11\\n");break;
            case -122:
                                printf("F12\\n");break;
            default:
            //    printf("%x,%d,%c\\n",t,t,t);break;
                printf("NULL");break;
            }
            break;
            default:
            //    printf("%x,%d,%c\\n",t,t,t);break;
                printf("NULL");break;
        }
    }
    return 0;
}

以上是关于C语言之控制台读取上下左右方向键指令的主要内容,如果未能解决你的问题,请参考以下文章

C语言之实现控制台光标随意移动

C语言键盘控制问题

贪吃蛇二代 —— 穿墙版(C语言实现)

俄罗斯方块(C语言实现)

贪吃蛇(C语言实现)

如何用C语言编写一个程序,输出一个汉字,用方向键控制它在屏幕上的显示位置?编译器要用Visual C++6.0