C语言捕获键盘敲击的方法kbhit
</pre>C语言中捕获键盘敲击的方法</h1><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><h2><span style="color:#333333"><span style="font-size:24px">问题简述</span></span></h2><div><span style="color:#333333"><span style="font-size:18px">在C语言程序设计中,我们要写一个简单的控制菜单。很好的一种做法如下</span></span></div><div><span style="font-size:18px"><span style="color:#333333"></span></span><pre name="code" class="cpp"></pre><pre name="code" class="cpp"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">while(choise)</span></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">{</span></span>
<span style="font-size:18px;"><span style="white-space:pre"></span></span><pre name="code" class="cpp" style="color: rgb(51, 51, 51);"><pre name="code" class="cpp" style="color: rgb(51, 51, 51);"><span><span style="font-size:18px;"> system("cls"); //清屏</span></span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>主菜单显示</span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>//输入操作选项</span>
switch(choise){
<span style="font-size:18px;"><span style="white-space:pre"> </span>case:</span>
<span style="font-size:18px;"><span style="white-space:pre"><span style="white-space:pre"> </span></span> //Do anything you want<span style="white-space:pre"> </span> </span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>break;</span>
<span style="font-size:18px;"><span style="white-space:pre"><span style="white-space:pre"> </span></span> ..............<span style="white-space:pre"> </span> </span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>default:</span>
<span style="font-size:18px;"><span style="white-space:pre"><span style="white-space:pre"> </span></span>choise = 0;</span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>break;</span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>}</span>
任何时候你想要为程序增加一个相应功能菜单,都可以通过改变这个里边的显示项达到你的目的。
具体实现
在C库中,为我们提供个一个神奇的函数kbhit(); //keyboard hit (键盘敲击)在msdn中是这样描述的
_kbhit
Checks the console for keyboard input.
int _kbhit( void );
Routine | Required Header | Compatibility |
_kbhit | <conio.h> | Win 95, Win NT |
示例如下:
#include <conio.h>
#include <stdio.h>void main( void )
{/* Display message until key is pressed. */while( !_kbhit() )_cputs( "Hit me!! " );/* Use _getch to throw key away. */printf( "\nKey struck was '%c'\n", _getch() );_getch();
}
Output
Hit me!! Hit me!! Hit me!! Hit me!! Hit me!! Hit me!! Hit me!!
Key struck was 'q'
解释:
补充篇
键盘扫描码 (来自百度百科)
键盘上的每一个键都有两个唯一的数值进行标志。为什么要用两个数值而不是一个数值呢?这是因为一个键可以被按下,也可以被释放。当一个键按下时,它们产生一个唯一的数值,当一个键被释放时,它也会产生一个唯一的数值,我们把这些数值都保存在一张表里面,到时候通过查表就可以知道是哪一个键被敲击,并且可以知道是它是被按下还是被释放了。这些数值在系统中被称为键盘扫描码。
<span style="font-size:18px;">enum {UP = 0x48 ,PD = 0x49,L = 0x4b,R = 0x4d, D = 0x50,PU = 0x51,C = 0x63,S = 0x73};
<span style="white-space:pre"> </span><span style="font-family: arial, sans-serif; text-indent: 2em;">if(( c = getch()) != 0xffffffe0)</span></span>
<span style="font-size:18px;"><span style="white-space:pre"> </span> //字符元键(简单字符键如 a,b,c...)
<span style="white-space:pre"> </span>{<span style="white-space:pre"> </span>choise = c; }
<span style="white-space:pre"> </span>else
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>//控制键位宽(控制类按键如 方向键,ctrl.....)
<span style="white-space:pre"> </span>choise = getch();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>switch(choise)
<span style="white-space:pre"> </span>{case UP:printf("↑");system("pause");break;........case PD:printf("PD %c",choise);system("pause");break;default:break;
<span style="white-space:pre"> </span>}</span>
对于这个问题还有什么疑问请留言交流,如不能及时回复请见谅。
通过PC机键盘输入汉字时,其中经过多次的代码转换:《仅作了解》
用户---汉字输入码---键盘---键盘扫描码---BIOS键盘驱动程序----ASCII码----汉字输入软件----汉字内码
通过PC机键盘输入汉字时,其中经过多次的代码转换:《仅作了解》
用户---汉字输入码---键盘---键盘扫描码---BIOS键盘驱动程序----ASCII码----汉字输入软件----汉字内码
C语言捕获键盘敲击的方法kbhit相关推荐
- c语言记录键盘敲击次数,【转】你知道一天敲键盘的敲击次数能达到多少么
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 9号上午大概11点多买了新键鼠,键盘自带LCD可以显示敲键次数,当时为0.实测后发现只要敲打任一按键就会增加次数一(废话 = = ) 于是,从9号12点开 ...
- java语言中实现键盘输入_Java程序设计中的键盘输入数据的方法分析
1. 引言 高校中很多学校开设了Java语言程序设计课程,这是一门实践性很强的语言,在程序设计中经常需要从键盘随机输入所需要的数据,Java语言中的键盘输入数据没有像C语言给我们提供的scanf(), ...
- c语言清除键盘缓冲区函数,C语言程序中清除键盘缓冲区的方法
第四期2006年12月益阳职业技术学院学报 JournalofYiyangVocationalandTechnicalCollegeNO.4Dec.2006 C语言程序中清除键盘缓冲区的方法 杨长虹 ...
- c语言编写的键盘记录程序,C程序读取键盘码的方法
本文以一个简单实例讲述了C程序读取键盘码的方法,分享给大家供大家参考.具体分析如下: 一般来说,键盘码在底层开发中经常会用到,有时候我们会忘记它们,就要急急忙忙的去找 键-码 对照表查看,其实程序可以 ...
- WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例
原文:WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例 键盘钩子是一种可以监控键盘操作的指令. 看到这句话是不是觉得其实键盘钩子可以做很多事情. 场景 当你的程序需要一个全局的快捷键 ...
- 数字盲打怎么练_如何提高盲打速度?键盘指法练习方法
如何提高盲打速度?打字不会盲打,这并不是因为笨,而是因为手感不够,长期工作于计算机环境的用户,也是万丈高楼平地起,从指法练习,眼神不离开键盘开始的,实际上这就是简单易行的键盘指法练习方法. 键盘指法练 ...
- 数学模型转化为计算机语言,程序设计语言类课程教学选题方法探讨
<程序设计语言类课程教学选题方法探讨>由会员分享,可在线阅读,更多相关<程序设计语言类课程教学选题方法探讨(6页珍藏版)>请在人人文库网上搜索. 1.程序设计语言类课程教学选题 ...
- 基于易语言的键盘监听器(仅供学习)
基于易语言的键盘监听器(仅供学习) 软件原理 梳理 输入内容检测部分 发送部分 结束部分 准备工作 邮箱准备 支持库准备 模块准备 窗口准备 代码部分 程序集 启动窗口创建完毕 子程序1 编辑框1内容 ...
- Win11怎么改系统语言?Win11系统语言简体改繁体的方法
Win11怎么改系统语言?有时候我们电脑下载安装系统之后,发现该系统语言不是自己常用的,因此还需要更换系统语言,那么应该如何操作呢?今天小编就为大家带来Win11系统语言简体改繁体的方法,而且用类似的 ...
最新文章
- 取出url中的字符_如何在JavaScript中解析URL:例如主机名,路径名,查询,哈希?...
- 简单的文本片段替换器
- pytorch——torch.backends.cudnn.benchmark = True
- little w and Segment Coverage(差分)
- 使用 Github Pages 和 Hexo 搭建自己的独立博客【超级详细的小白教程】
- /var/spool/postfix/maildrop小文件太多造成inode索引使用完解决
- 有毒!OPPO Reno证件照曝光:“铡刀式”前置摄像头抢眼
- 十条不错的编程观点(转)
- 超简单的memcached集群搭建
- C++ 中缀表达式转后缀表达式(两种方式:栈、二叉树)
- java 数据库编程(一)JDBC连接Sql Server数据库
- Bitvise SSH Client连接Linux服务器教程和使用
- java火星坐标转百度坐标,火星坐标(GCJ-02)转百度坐标(BD-09)算法验证
- php 图片抠图,php抠图教程(混合模式+剪切蒙版)
- Spring内异常 application exception overridden by commit exception
- python国内股票数据分析方法_Python股票数据分析
- 解决SQL server中提示对象名无效
- 性能测试基础培训 - PPT下载
- 怎么用软碟通制作U启动和再生龙恢复LINUX系统及备份
- JQuary(从原生js到jq,就发现jq好简单)
热门文章
- 【渝粤题库】陕西师范大学163103 旅游资源与开发 作业 (高起专)
- 欧拉回路的matlab算法,「学习笔记」欧拉回路算法
- cat3速度 rj45_CAT6E RJ45网络连接器卡侬支架 CAT3 CAT5 CAT5E
- linux多线程编程实现圆周率,linux环境下使用Monte Carlo计算π
- 计算机学院毕业季主题,毕业季 | 计算机学院2020届毕业生成长纪念册出炉!
- 网络营销之百度问答平台(1)
- 区块链职业技术技能标准的出台,对区块链人才培养具有指导意义
- 电脑系统转移到ssd固态硬盘
- 图解USB标准之架构概览
- 在c语言中1和0的意思,C语言里的0x0和0x1是什么意思啊