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;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐百川的学习频道

使用sqlite3 模块操作sqlite3数据库

Python内置了sqlite3模块,可以操作流行的嵌入式数据库sqlite3。如果看了我前面的使用 pymysql 操作MySQL数据库这篇文章就更简单了。因...

21570
来自专栏Java后端技术栈

告诉你38个MySQL数据库的小技巧!

培养兴趣 兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率。当然学习MySQL 5.6也不例外。 夯实基础 计算机领域的技术非常强调基础,刚开始...

9710
来自专栏kwcode

C# 读取指定文件夹下所有文件

#region 读取文件 //返回指定目录中的文件的名称(绝对路径) string[] files = S...

33370
来自专栏精讲JAVA

Java面试之数据库面试题

触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可...

16340
来自专栏python成长之路

(细节)My SQL中主键为0和主键自排约束的关系

19740
来自专栏Kevin-ZhangCG

MySQL数据库实用技巧

培养兴趣   兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率。当然学习MySQL 5.6也不例外。 夯实基础   计算机领域的技术非常强调基础...

21910
来自专栏程序员的SOD蜜

抽象SQL查询:SQL-MAP技术的使用

什么是参数化查询?我们来看百科对此的定义和示例: 一,定义 --------------------------------------------------...

321100
来自专栏Android自学

Java通过JDBC连接SQl Server各个版本数据库

61750
来自专栏数据和云

深入剖析-关于分页语句的性能优化

分页语句是数据库开发和应用场景比较常见的需求,即按照特定的where条件进行过滤,然后在按照一个或者多个条件进行排序(如果不进行排序无法确执行时候无法返回相同的...

29390
来自专栏技术碎碎念

Mybatis插入数据后返回主键id

20330

扫码关注云+社区

领取腾讯云代金券