我是靠谱客的博主 大方小熊猫,这篇文章主要介绍论程序设计Test,关于“ASCII码”和“键盘扫描码”的基础应用?输入格式&输出格式:,现在分享给大家,希望可以做个参考。

题目如下:

某用户有一个新的键盘,他想知道这个键盘键帽的字符有没有印错。按下一个按键,在屏幕上显示其对应正确字符就没有印错。

输入格式&输出格式:

本题的输入即等于输出,假如按下‘A’按键,就显示‘A’

a~z 26个小写字母,A~Z 26个大写字母,F1~F12 12个按键,LeftArrow、RightArrow、UpArrow、DnArrow 四个按键

  • 敲击的26个小写字母会自动转化为26个大写字母

  • 敲击的26个大写字母和 F1~F12 保持原来

  • 敲击的LeftArrow、RightArrow、UpArrow、DnArrow分别显示“左”、“右”、“上”、“下”

附源码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h> #include <conio.h> int main (int argc, char const *argv[]) { char in; int i = 0; while ( 1 ) { in = getch(); if ( in == -32 || in == 0 ) { in = getch(); if ( in == 72 ) { printf ("上"); } else if ( in == 80 ) { printf ("下"); } else if ( in == 75 ) { printf ("左"); } else if ( in == 77 ) { printf ("右"); } else if ( in > 58 && in < 69 ) { for ( i = 0 ; i < 12 ; i++ ) { if (( in - 58 ) == ( i + 1 )) { printf ("F%d", i+1); } } } else if ( in == -123 ) { printf ("F11"); } else if ( in==-122 ) { printf ("F12"); } } else { if ( in > 64 && in < 91 ) { printf ("%c", in); } else if ( in > 96 && in < 123 ) { printf ("%c", in-32); } } } return 0; }

关于这道题的解析,如下:

  1. 首先,使用了一个的头文件:<conio.h> —— “Console Input / Output” ,表示:“控制台的输入输出”。可以理解为打开一个实时的操作窗口,让用户可以通过敲击键盘来产生相应的操作!?                                    "~%?…,# *'☆&℃$︿★?"

  2. ,使用“int getch()”函数。该函数可以从控制台读取一个字符并同时不用敲击回车,但是这个字符不会在敲击的同时显示在屏幕上。于是有了类似“getchar()”的用法:

    复制代码
    1
    2
    char in; in = getch();

     

  3. 对于26个英文字母的大小写形式,用一个char的字符变量是可以读,但是像F1~F12LeftArrow就需要通过“getch()”的特殊功能来实现了:键入键盘上无法显示在屏幕上的按键,getch()会返回‘0’或者‘-32’的值(这是个int函数,会有返回值!)。然后,在这个if判断语句的内部,再次调用“getch()”函数,其会返回(笔者认为说白了就是读出来)这个无法显示在屏幕上的按键键盘扫描码(扫描码是十六进制的)。即便是十六进制的数字,在字符中还是按照ASCII码来储存。于是,这个扫描码又再次转化为了ASCII码。通过科学计算器将十六进制的扫描码转化成十进制数字,就能通过“else if ()”括号中的给定的条件进行输出了!

例如:“UpArrow”的扫描码是“0x48”,转化为十进制是“72”,第72个ASCII码,所以在“printf”上稍微做了点手脚,就出现了“上”。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h> #include <conio.h> int main (int argc, char const *argv[]) { char in; int i = 0; while ( 1 ) { in = getch(); if ( in == -32 || in == 0 ) { in = getch(); if ( in == 72 ) { printf ("上"); } } } return 0; }

 

最后

以上就是大方小熊猫最近收集整理的关于论程序设计Test,关于“ASCII码”和“键盘扫描码”的基础应用?输入格式&输出格式:的全部内容,更多相关论程序设计Test,关于“ASCII码”和“键盘扫描码”内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部