C语言键盘方向键的读入
当我们做一个程序比如游戏时需要从键盘读入方向键,并且最好读入后不需要按回车且不要显示。下面我们在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语言键盘方向键的读入相关推荐
- C语言 ACLLib键盘方向键控制图形移动以及鼠标控制图形移动
C语言 ACLLib键盘方向键控制图形移动以及鼠标控制图形移动 鼠标的参数 键盘的参数 键盘方向键控制图形移动 鼠标控制图形移动 鼠标的参数 button:5:没有按下鼠标1:按下左键2:按下中键3: ...
- python通过键盘方向键移动_移动python教程!python中怎么用键盘方向键控制方块的移动...
python中怎么用键盘方向键控制方块的移动 感象是在用TKinter绘图.在tkinter里有一键射表.左键也在其中. KeyPress-xx 这个xx是键盘的号码.不在button.tcl里.需己 ...
- c语言自动按键脚本,C语言键盘控制走迷宫小游戏
本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下 在看了<啊哈C语言>之后想写一个游戏demo 游戏的截图 首先是启动界面 然后是初始化 接下来是键盘操控 ...
- 解决Visio中对象不能通过键盘方向键微调位置
解决Visio中对象不能通过键盘方向键微调位置 有时候通过键盘方向键对Visio图进行位置的细微修改时,会出现整个画布移动而不是对象的移动.这时,你该检查Scroll Lock 是否被按下. 不同的键 ...
- html点击控制盒子左右移动,JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例...
本文实例讲述了JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动.分享给大家供大家参考,具体如下: 1. 盒子跟着鼠标移动 content="width=device-width, user- ...
- c语言键盘驱动程序,c语言键盘扫描程序
描述 c语言键盘扫描程序 4*4键盘扫描C语言程序 /* 4x4矩阵键盘的扫描程序 测试通过*/ #includesbit P1_0=P1^0; sbit P1_1=P1^1; sbit P1_2= ...
- WPF项目-按着键盘方向键,移动格子盒子效果
1 界面展示前端代码,写入 <Window x:Class="WpfApp1.移动方块.WindowModelBox"xmlns="http://schemas. ...
- JS实战之使用键盘方向键控制方块的上下左右移动
使用键盘方向键控制方块的上下左右运动 <!DOCTYPE html> <html> <head><meta charset="UTF-8" ...
- c语言键盘不输入也可只动运行,c语言键盘操作.doc
c语言键盘操作 第一章??? 编程技术实现 ??? 本章内容简介:本章主要介绍如何实现键盘和鼠标的输入,图形图像技术,动画技术,发声技术,汉字显示技术,精确的时间控制技术.是编写大型程序的基本功.虽然 ...
最新文章
- python 操作mysql 返回字典_Python查询Mysql时返回字典结构的代码
- jpgraph 实例文档
- Altium Designer 18/AD 设置禁止布线层和铜皮或者其他线之间的间距
- java linux 权限管理_权限管理java实现(源于Linux中的权限管理算法)
- 51Nod 1013 3的幂的和 快速幂 | 乘法逆元 | 递归求和公式
- java获取默认用户目录_Java获取当前路径
- nand flash和nor flash的这几点区别你知道吗?
- Codeforces Round #553 (Div. 2) 题解
- go mysql driver事务,Go 数据库事务的源码分析
- activex 控件 过期_ie8/9下Activex控件无法加载的两种解决方法
- PROTEL技术大全
- 计算机笔记--【Java设计模式】
- 自然语言处理-聊天机器人
- CIO40: IT从之“CRM”与“OA”
- sql做题记录(一)
- 微信小程序-小程序的宿主环境
- 手机Web前端调试页面之——Chrome DevTools(谷歌浏览器)的模拟手机调试
- C语言数据结构——广义表
- 微信或者特定程序连不上网,但是浏览器和其他程序都可以正常上网问题
- upload-labs通关详解
热门文章
- 新星计划·能够 120% 提升博文美感的表情包,你们确定不心动吗?
- NOIP5424. 【NOIP2017提高A组集训10.25】凤凰院凶真 LCIS 方案
- Nginx报错Mixed Content: The page was loaded over HTTPS, This content should also be served over https
- Ubuntu18.04 安装最新版WPS
- 如何求置换奇偶性、对换乘积
- python mitmproxy +雷电模拟器 安装
- 高省一个了解网络商家和买家心里的APP,它知道你想要什么
- rust实现一个mysql驱动_使用Rust编写用户态驱动程序
- Win10安装cuda和cudnn(可安装多版本并自由切换)
- 买服务器挂网站吗,云服务器 挂网站吗