第一章??? 编程技术实现

??? 本章内容简介:本章主要介绍如何实现键盘和鼠标的输入,图形图像技术,动画技术,发声技术,汉字显示技术,精确的时间控制技术。是编写大型程序的基本功。虽然每个技术所涉及的内容很少,所提及的函数也很少,但是当它们组合在一起的时候,就可以编写大型程序。

一、键盘:

??? 首先有必要介绍一下计算机是如何来处理键盘输入的数据的键盘里面有一个微处理器,用来扫描和检测每个键的按下或者抬起的状态,然后向主机传送一个字节的键盘扫描码,键盘扫描码翻译成对应的ASCⅡ码。

??? 作为编程来说,只要知道每个按键都有对应的ASCⅡ码。由于ASCⅡ码不能将键盘上所有的按键全部包括,因此有些控制键如Ctrl、Alt、End、Home和Del等用扩充的ASCⅡ码表示。至于每个按键所对应的ASCⅡ码到底是什么,这里介绍一个函数可以实现该功能:

?

int bioskey(int n)

??? 该函数声明在bios.h头文件中,所以调用之前需要在程序开始的位置写上? #include,(以后如果第一次碰到的函数可以在TC根目录下的include文件夹中的头文件中查找,可以用记事本打开。)

参数n用来确定该函数的三个功能,具体如下表所示

?

表1-1

参数n的具体数值

实现的功能

0

bioskey(0) 返回按键的键值——两个字节的整型数据。若没有键按下,该函数一直等待,直到有键按下(这种情况有时会影响效率,在之后的例2中会看到有一种方法可以实现:在一定时间内没有按键就去执行下面的代码)。

当按下时,返回该键所对应的ASCⅡ码或其扩展的ASCⅡ码。具体请看例1;

1

bioskey(1) 查询是否有键按下。 若没有键按下,返回0;若有键按下,返回非零值

2

bioskey(2) 将返回一些控制键是否被按过,按过的状态由该函数返回的值来表示,具体请看表2

???????????????????? ???

??? 如选参数n为2时,当某位为1时,表示相应的键已按,或相应的控制功能已有效,若key值为0x09, 那么从表1-2中可以得知右Shift键和Alt键被按下,因为只有0x01和0x08相加和为0x09。 若该函数还是无法理解也不影响最后编小游戏,故此处不做详细介绍。

?

表1-2?

字节位

对应的16进制数

含义

字节位

对应的16进制数

含义

0

0x01

右Shift键被按下

4

0x10

Scroll Lock已打开

1

0x02

左Shift键被按下

5

0x20

Num Lock已打开

2

0x04

Ctrl键被按下

6

0x40

Caps Lock已打开

3

0x08

Alt键被按下

7

0x80

Inset 已打开

??

例1-1:

#include

int main ( )

{

???? int key;

???? key=bioskey(0);

? printf(“%x”,key);

}

/* 该例子中,若按下键盘上的UP (↑)键,屏幕会显示4800(16进制),用 16进制是一种习惯, 在上表2中也体现了这种习惯的合理性。*/

??

例1-2:

#include

#include

int main(){

? int? i , s;

? for(i=0;i<5000;i++){???????? delay(1);? ?/*delay()函数用于延时,即使同样的参数会根据不同的实际情况的?????

不同而延时不同的时间,精确的时间控制请参阅《精确的时间控制》(超链接)一章*/

??? if(bioskey(1)!=0){?????????? s=1; ???????????? break;??? ???????? }? ???? }

?

printf(“hello”);

?}

}?

/* ??该例中用了一个5000次的循环,每次延时1,每次去判断是否有按键被按下,如果有,则跳出循环,马上去执行printf(“hello”);若5000次循环里面都没有按键按下,在循环结束后,执行printf(“hello”);? 这种方法对于最后编小游戏非常有用,在最后的吃豆子放炸弹(超链接)例子中会再次提到? */

?

最后再介绍一个函数:

int kbhit(void);??

??? 该函数声明在conio.h头文件中,所以调用之前需要在程序开始的位置写上? #include

若按了键盘,该函数返回1,否则返回0;?

?

??? C语言也可以实现鼠标的操作,但由于这种方法效率低,现在的 面向对象的编程都不是用C语言的鼠标操作手段。并且,本课程的一些例子中,也可以不用鼠标的操作,一般只用键盘就可以实现所需要的功能,因

c语言键盘输入坐标,c语言键盘操作.docx相关推荐

  1. 用函数编程实现输出 m~n之间所有素数,并求和,m和n由键盘输入。(c语言)

    用函数编程实现输出 m~n之间所有素数,并求和,m和n由键盘输入.素数是只能被1和自身整除的大于1的正整数. 要求程序能对用户输入的数据进行正确性检查,满足条件:m和n都是大于1的正整数,并且m< ...

  2. 在java中通过过键盘输入_java中从键盘输入

    控制台输入数据 1.1 主方法的形式参数 在 Java 中利用 main(Str... Java中获取键盘输入值的三种方法 2012-11-13 00:00比特网悠虎关键字:Java 程序开发过程中, ...

  3. c语言fputc输入字符串,C语言fgetc和fputc函数用法详解(以字符形式读写文件)

    C语言fgetc和fputc函数用法详解(以字符形式读写文件),文件,字符,指针,函数,字节 C语言fgetc和fputc函数用法详解(以字符形式读写文件) 易采站长站,站长之家为您整理了C语言fge ...

  4. python键盘输入代码,python监控键盘输入实例代码

    本文研究的主要是python监控键盘输入的相关代码,用到了os,sys,time等,具体实现代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- im ...

  5. c语言如何输入汉字_C语言入门的第一个小程序

    大部分程序员入门的第一个小程序都是Hello World,还记得当时大一的时候,我室友还特意为了这个发了个说说,现在想起来好有意思,哈哈好了废话不多说,直接干. (PS:如果学过自动忽略) #incl ...

  6. python 键盘输入数字_九宫格键盘输入

    九宫格键盘输入 Letter Combinations of a Phone Number 给定一个数字字符串,返回数字可能代表的所有可能的字母组合. 数字到字母的映射(就像九宫格电话按钮一样)如下图 ...

  7. python键盘输入转换为列表_Python键盘输入转换为列表的实例

    Python输入字符串转列表是为了方便后续处理,这种操作在考试的时候比较多见. 1.在Python3.0以后,键盘输入使用input函数 eg1. >>> x=input >& ...

  8. python检测键盘输入_python实时检测键盘输入函数的示例

    在嵌入式.尤其是机器人的python编程中,经常需要实时检测用户的键盘输入来随时控制机器人,这段代码可以帮助我们提取用户输入的字符,并在按下键盘的时候作出反应. import sys import t ...

  9. python 键盘输入数字_python实现键盘输入的实操方法

    python实现键盘输入的实操方法 python中有指定的代码进行输入操作,所以今天就由小编来为大家介绍python怎么实现键盘输入. 第一首先打开电脑的python编辑工具. 再创建python项目 ...

最新文章

  1. oracle什么是全局锁,深入浅出oracle锁---原理篇
  2. c#开发中程序集调用时容易忽略的问题
  3. fastapi jinja2_(入门篇)Python框架之FastAPI——一个比Flask和Tornado更高性能的API 框架
  4. Flask爱家租房--订单支付(支付过程)
  5. linux脚本多个条件比较大小,shell脚本-比较两个整数大小
  6. java设计模式之模板方法
  7. matebook14装鸿蒙系统,matebook14几个接口
  8. Cadence OrCAD Capture交叉参考报表生成方法图文教程
  9. 【AI视野·今日CV 计算机视觉论文速览 第189期】Fri, 1 Jan 2021
  10. Xmind 8 下载以及破解
  11. java.io.InvalidClassException: made.customException; local class incompatible: stream classdesc seri
  12. android 手机分辨率占比,Android屏幕密度(Density)和分辨率概念详解
  13. 【生信MOOC】生物序列比对工具——多序列比对
  14. 微信小程序wxs将数字转换为汉字
  15. 圣诞节儿童什么礼物好呢?精选实用型的圣诞护眼小台灯
  16. aixcoder邀请码
  17. 《Linux Kernel Development》读书笔记
  18. Postman使用newman命令执行
  19. js判断输入是否含有空格
  20. 视频监控换代升级,5G+AI助力视频监控的超高清化发展

热门文章

  1. 基于C#的GIS开发20210426之类库同名类、制作winform控件、建立控件之间的关联、自己制作控件、自己控件引入项目、显示磁盘文件夹、磁盘文件与picturebox建立关系、图像拉伸
  2. 测试cpu玩游戏的软件,玩游戏时显卡和CPU到底哪个更重要?来看下面的测试你就会明白了...
  3. 中国环境服务行业十四五规划目标与建设现状分析报告2022-2028年
  4. 高中计算机教室标语,高中教室常用标语
  5. Cloneable接口
  6. 消息队列(一)为什么需要消息队列
  7. Metropolis-Hasting抽样算法
  8. 如何理解内网和外网?
  9. LaTeX中的数学公式
  10. 净亏损1166亿?“短视频第一股”首份年报藏了这些玄机