当前位置:首页 » 编程语言 » c语言怎么查看按键键值
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么查看按键键值

发布时间: 2022-09-12 02:21:36

❶ 如何获分辨键盘是输入了方向键,用的是c语言

1、一般是使用getch获取
方向键(←): 0xe04b
方向键(↑): 0xe048
方向键(→): 0xe04d
方向键(↓): 0xe050
一个方向键要用两个getch才能把它的数据获取完.
然后对应着两个字符数据, 一个当高位, 一个当低位, 就可以判断按下的是什么键, 如:
char ch = getch();
if(ch == 0xe000) //如果高位相等
{

ch = getch(); //那么再获取一个
if (ch == 0x004b) //如果低位也相同(和方向键左一样)
.... //要执行的动作.

}
else //如果不是, 把这个字符吸收了.
getch()

2、例程:

#include<stdio.h>
#include<stdlib.h>
main()
{
intkey,key2;
key=getch();
printf(" keyvalue=0x%02x--%d ",key,key);
key=getch();
printf(" keyvalue=0x%02x--%d ",key,key);
}

❷ 在dev环境下,如何利用C语言获得键盘键值

#include<iostream>/*GetKeyState()函数是windows.h中的函数,当括号内的键被按下时,其值小于0,*/

#include<windows.h>/*并且只要在只要键处于被按下的状态,其值都会小于0,当键被松开时,其值大于0*/
using namespace std;
int main()
{
while(1){
if((GetKeyState(VK_CONTROL)<0)&&(GetKeyState('A')<0)){
cout<<"CONTROL+A";
while(GetKeyState(VK_CONTROL)<0&&GetKeyState('A')<0) ;//只要键被按下,就会有一定的持续时间。
}
}
}
//自己耗费1天半的呕心沥血之作,希望对你有用!

❸ C语言怎么捕捉按键

通过键盘对应键的ASCII码值进行获取所按下的键值,从而确定所按下的具体按键。具体实现代码如下:

#include<stdio.h>
#include<conio.h>
intmain()
{
intkey;
while(1)
{
key=getch();
if(key==27)break;
if(key>31&&key<127)/*如果不是特殊键*/
{
printf("按了%c键按ESC退出! ",key);
continue;
}
key=getch();
if(key==72)printf("按了上键按ESC退出! ");
if(key==80)printf("按了下键按ESC退出! ");
if(key==75)printf("按了左键按ESC退出! ");
if(key==77)printf("按了右键按ESC退出! ");
}
return0;
}

❹ C语言获取按键信息函数

这个程序应该满足你的要求吧。
#include <stdio.h>
#include <conio.h>

int main(void)
{
while (1)
{
if (!kbhit())
printf("1");
else
{
char c = getch();

if (c == 'a')
{
putchar('2');
getch();
}
}
}

return 0;
}

❺ c语言中怎样输入和读取方向键

在C代码中可设置如下自编的intokey( )函数,用以接收方向键值。库函数kbhit( )是检测是否有按键被按下,库函数getch( )是读取键盘按键值的,不需按回车,也不回显。dir是代表方向的变量,根据不同的方向键值,让dir取1到4这四个不同的值。其它的程序段就可根据dir的值让东西朝某个方向移动。方向键按下后会产生2个值,第一个是224,另一个分别为上下左右的72、80、75、77,因此要读取2次值来判断。要包含#include<conio.h> .

void intokey( )

{ int flag;

if ( kbhit( ) ) //判断有键按下时才执行下面的操作

{ flag = getch( ); //用flag来获取键值

if (flag==224)

{ flag = getch( ); //值为224时表示按下了方向键,要再次获取才行

if ( flag==72 && dir != 2 ) dir = 1;

if ( flag==80 && dir != 1 ) dir = 2;

if ( flag==75 && dir != 4 ) dir = 3;

if ( flag==77 && dir != 3 ) dir = 4;

}

if (flag==13)

{ while( 1 ) if ( ( flag=getch( ) )==13 ) break ; }

}

}

注:这个函数来源于某些“贪吃蛇”的代码,略有修改,足可获取方向键值。其中的1、2、 3、4分别对应着上下左右。当flag获得键值后,分两种情况:一是flag=224,此时再次获取键值以判断输入的是4个方向中的哪一个;二是flag=13,表示按下回车键,我们就执行循环,程序暂停,等待再次输入回车,程序继续运行。

❻ c语言各个按键的键值是什么

,用它可以获得键盘上按键的键值,获得键值之后,把它们记住,或者用宏定义,就可以为以后的
判断语句使用,
for
example:
#include<stdio.h>
void
main(void)
{
int
key=0;
clrscr();
while(key
!=
0x11b)
/*0x11b就是ESC键的键值,用它来判断结束,这是我事先知道的,方法是一样的*/
{
key
=
bioskey(0);
printf("%x
",key);/*把获得的键值用16进制显示*/
}
}

❼ c语言各个按键的键值是什么

,用它可以获得键盘上按键的键值,获得键值之后,把它们记住,或者用宏定义,就可以为以后的 判断语句使用,
for example:
#include<stdio.h>

void main(void)
{
int key=0;
clrscr();

while(key != 0x11b) /*0x11b就是ESC键的键值,用它来判断结束,这是我事先知道的,方法是一样的*/
{
key = bioskey(0);
printf("%x ",key);/*把获得的键值用16进制显示*/
}
}

❽ 请问下c语言从键盘读入控制键键值如何实现

用bioskey()函数;在dos.h头文件中!
函数原型:int bioskey (int cmd)
说明:bioskey()的函数原型在bios.h中
bioskey()完成直接键盘操作,cmd的值决定执行什么操作。
cmd = 0:
当cmd是0,bioskey()返回下一个在键盘键入的值(它将等待到按下一个键)。它返回一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码;对于特殊键(如方向键、F1~F12等等),低8位为0,高8位字节存放该键的扫描码。
cmd = 1:
当cmd是1,bioskey()查询是否按下一个键,若按下一个键则返回非零值,否则返回0。
cmd = 2:
当cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert键的状态。各键状态存放在返回值的低8位字节中。
字节位 含义
0 右边Shift键状态
1 左边Shift键状态
3 Ctrl键状态
4 Alt键状态
5 ScrollLock键状态
6 NumLock键状态
7 CapsLock键状态
8 Insert键状态
方向键可以用下面的程序啊!
#define Key_Up 0x4800/*up*/
#define Key_Down 0x5000/*down*/
#define Key_Right 0x4d00/*right*/
#define Key_Left 0x4b00/*left*/
int key=bioskey(0);
switch(key)
{
case Key_Up:/*code*/
case Key_Down:/*code*/
case Key_Left:/*code*/
case Key_Right:/*code*/
}

❾ c语言各个按键的键值是什么

,用它可以获得键盘上按键的键值,获得键值之后,把它们记住,或者用宏定义,就可以为以后的 判断语句使用,
for example:
#include<stdio.h>

void main(void)
{
int key=0;
clrscr();

while(key != 0x11b) /*0x11b就是ESC键的键值,用它来判断结束,这是我事先知道的,方法是一样的*/
{
key = bioskey(0);
printf("%x ",key);/*把获得的键值用16进制显示*/
}
}

❿ C语言键盘内容读取

综观TC提供的键盘输入函数,以bioskey函数为最合适选择。

int bioskey(int cmd);
使用BIOS中断0x16执行各种键盘操作。参数cmd确定实际得操作。
bioskey的返回值由cmd决定:
0:低8位非0,返回在队列中等待的下一输入键的ascii字符或键盘的下一次按键输入的ascii字符。低8位为0,则高8位为扩展键盘码。

1:测试是否有可读的输入键,为0,则没有。Ctrl_break 返回0xffff(-1)。否则,返回下一个输入键。键值还保存,供下次cmd=0时bioskey调用返回。

2:请求当前换档键状态。状态值由下列值相或(or)得到:

位7 0x80 Insert ON
6 0x40 Caps ON
5 0x20 Numlock ON
4 0x10 Scroll Lock ON
3 0x08 ALT
2 0x04 CTRL
1 0x02 <- SHIFT
0 0x01 -> SHIFT

为了方便起见,我们首先定义一些常用功能键的键值。

#define ReturnKey 0x0d
#define ESC 0x1b
#define Back 0x08

#define LeftArrow 0x4b00
#define RightArrow 0x4d00
#define UpArrow 0x4800
#define DownArrow 0x5000

#define PageUp 0x4900
#define PageDown 0x5100
#define Home 0x4700
#define End 0x4f00

#define F1 0x3b00
#define F2 0x3c00
#define F3 0x3d00
#define F4 0x3e00
#define F5 0x3f00
#define F6 0x4000
#define F7 0x4100
#define F8 0x4200
#define F9 0x4300
#define F10 0x4400

int GetKey(void)
{
int tKey;
while(bioskey(1)==0)
;

tKey=bioskey(0);
if ((tKey & 0xff)!=0)
tKey=tKey & 0xff;
return tKey;

}

以上代码,可基本完成常用程序键盘读取操作。

但我们必须注意到,对于函数GetKey的定义中,bioskey函数的使用,我们只是对cmd=0,1的情况进行了处理,而对于cmd=2,也即换档键状态没有进行处理,因而诸如ctrl-home等等GetKey不能进行相应的接收,如果确实需要,须继续扩充GetKey函数。