当我们做一个程序比如游戏时需要从键盘读入方向键,并且最好读入后不需要按回车且不要显示。下面我们在WIN和LINUX下分别一一实现;

  • 读入方向键;
    在win下,方向键由两个字节组成,分别为:’\244’和
    ‘\72’ up
    ‘\80’ down
    ‘\75’ left
    ‘\77’ right
    所以我们可以读两次来确认一个方向键
char a;
a=getchar();
if(a=='\244')
{a=getchar();if(a=='\72')printf("上\n");if(a=='\80')printf("下\n");if(a=='\75')printf("左\n");if(a=='\77')printf("右\n");
}

而在Linux下,方向键由三个字节组成,分别为:’\033’和’[‘和
‘A’ up
‘B’ down
‘C’ left
‘D’ right
相同的我们可以读三次次来确认一个方向键

char a;
a=getchar();
if(a=='\033')
{a=getchar();if(a=='['){a=getchar();if(a=='A')printf("上\n");if(a=='B')printf("下\n");if(a=='D')printf("左\n");if(a=='C')printf("右\n");}
}
//当然我们也可以使用字符串数组
char a[4];
scanf("%s",a);
if(!strcpy(a,"\033[A"))printf("上");//。//。//。//。
  • 读入后不需要按回车且不回现
    在win下,我们可以使用conio.h库下的getch()函数读字符,就可以不回显,不用按回车;
    但是在Linux下我们没有conio.h库,也没有类似的函数,所以就得使用一些新操作(还有这种操作?)
    那就是设置Linux终端里设置非正规模式(没错就是有这种操作!)
struct termios stored_settings;
struct termios new_settings;
tcgetattr (0, &stored_settings);// 得到原来的终端属性
new_settings = stored_settings;
new_settings.c_lflag &= (~ICANON);//设置非正规模式,程序每次要从终端读取一个字符的
new_settings.c_cc[VTIME] = 0;//设置非正规模式下的读延时
new_settings.c_cc[VMIN] = 1;// 设置非正规模式下的最小字符数
tcsetattr (0, TCSANOW, &new_settings);// 设置新的终端属性
//然后就可以读取了
char a;
a=getchar();
tcsetattr (0, TCSANOW, &stored_settings);// 恢复默认设置
//读完记得恢复默认设置,不然。。。。。。

C语言键盘方向键的读入相关推荐

  1. C语言 ACLLib键盘方向键控制图形移动以及鼠标控制图形移动

    C语言 ACLLib键盘方向键控制图形移动以及鼠标控制图形移动 鼠标的参数 键盘的参数 键盘方向键控制图形移动 鼠标控制图形移动 鼠标的参数 button:5:没有按下鼠标1:按下左键2:按下中键3: ...

  2. python通过键盘方向键移动_移动python教程!python中怎么用键盘方向键控制方块的移动...

    python中怎么用键盘方向键控制方块的移动 感象是在用TKinter绘图.在tkinter里有一键射表.左键也在其中. KeyPress-xx 这个xx是键盘的号码.不在button.tcl里.需己 ...

  3. c语言自动按键脚本,C语言键盘控制走迷宫小游戏

    本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下 在看了<啊哈C语言>之后想写一个游戏demo 游戏的截图 首先是启动界面 然后是初始化 接下来是键盘操控 ...

  4. 解决Visio中对象不能通过键盘方向键微调位置

    解决Visio中对象不能通过键盘方向键微调位置 有时候通过键盘方向键对Visio图进行位置的细微修改时,会出现整个画布移动而不是对象的移动.这时,你该检查Scroll Lock 是否被按下. 不同的键 ...

  5. html点击控制盒子左右移动,JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例...

    本文实例讲述了JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动.分享给大家供大家参考,具体如下: 1. 盒子跟着鼠标移动 content="width=device-width, user- ...

  6. c语言键盘驱动程序,c语言键盘扫描程序

    描述 c语言键盘扫描程序 4*4键盘扫描C语言程序 /*  4x4矩阵键盘的扫描程序 测试通过*/ #includesbit P1_0=P1^0; sbit P1_1=P1^1; sbit P1_2= ...

  7. WPF项目-按着键盘方向键,移动格子盒子效果

    1  界面展示前端代码,写入 <Window x:Class="WpfApp1.移动方块.WindowModelBox"xmlns="http://schemas. ...

  8. JS实战之使用键盘方向键控制方块的上下左右移动

    使用键盘方向键控制方块的上下左右运动 <!DOCTYPE html> <html> <head><meta charset="UTF-8" ...

  9. c语言键盘不输入也可只动运行,c语言键盘操作.doc

    c语言键盘操作 第一章??? 编程技术实现 ??? 本章内容简介:本章主要介绍如何实现键盘和鼠标的输入,图形图像技术,动画技术,发声技术,汉字显示技术,精确的时间控制技术.是编写大型程序的基本功.虽然 ...

最新文章

  1. python 操作mysql 返回字典_Python查询Mysql时返回字典结构的代码
  2. jpgraph 实例文档
  3. Altium Designer 18/AD 设置禁止布线层和铜皮或者其他线之间的间距
  4. java linux 权限管理_权限管理java实现(源于Linux中的权限管理算法)
  5. 51Nod 1013 3的幂的和 快速幂 | 乘法逆元 | 递归求和公式
  6. java获取默认用户目录_Java获取当前路径
  7. nand flash和nor flash的这几点区别你知道吗?
  8. Codeforces Round #553 (Div. 2) 题解
  9. go mysql driver事务,Go 数据库事务的源码分析
  10. activex 控件 过期_ie8/9下Activex控件无法加载的两种解决方法
  11. PROTEL技术大全
  12. 计算机笔记--【Java设计模式】
  13. 自然语言处理-聊天机器人
  14. CIO40: IT从之“CRM”与“OA”
  15. sql做题记录(一)
  16. 微信小程序-小程序的宿主环境
  17. 手机Web前端调试页面之——Chrome DevTools(谷歌浏览器)的模拟手机调试
  18. C语言数据结构——广义表
  19. 微信或者特定程序连不上网,但是浏览器和其他程序都可以正常上网问题
  20. upload-labs通关详解

热门文章

  1. 新星计划·能够 120% 提升博文美感的表情包,你们确定不心动吗?
  2. NOIP5424. 【NOIP2017提高A组集训10.25】凤凰院凶真 LCIS 方案
  3. Nginx报错Mixed Content: The page was loaded over HTTPS, This content should also be served over https
  4. Ubuntu18.04 安装最新版WPS
  5. 如何求置换奇偶性、对换乘积
  6. python mitmproxy +雷电模拟器 安装
  7. 高省一个了解网络商家和买家心里的APP,它知道你想要什么
  8. rust实现一个mysql驱动_使用Rust编写用户态驱动程序
  9. Win10安装cuda和cudnn(可安装多版本并自由切换)
  10. 买服务器挂网站吗,云服务器 挂网站吗