A. c语言中怎样输入和读取方向键
在用C语言写出的“贪吃蛇”小游戏中,可以自编以下这个intokey( )函数,用来获取方向键值以便控制蛇的拐弯。库函数kbhit( )是检测是否有按键被按下,Dir是代表方向的变量,整型变量flag用来获取键值,1、2、3、4分别表示方向的上下左右。要#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; //方向键为“上”且原方向不为下时,让dir=1.
if (flag==80 && dir != 1) dir = 2; //方向键为“下”且原方向不为上时,让dir=2.
if (flag==75 && dir != 4) dir = 3; //方向键为“左”且原方向不为右时,让dir=3.
if (flag==77 && dir != 3) dir = 4; //方向键为“右”且原方向不为左时,让dir=4.
}
}
注:上下左右键按下后都会产生2个值,第一个是224,第二个才分别是72、80、75和
77.所以要用库函数getch( )两次获取键值。如果是ASDW来控制拐弯,flag可以定义为
字符型,获取一次键值即可。
B. c语言如何使用键盘上的上下左右键
用bioskey()函数可以实现读取键盘的上下左右键
函数原型:int bioskey (int cmd)
说 明:bioskey()的函数原型在bios.h中,即必须包含头文件#include<bios.h>
读取方向键可以用下面的程序啊!
#include<stdio.h>
#include<bios.h>
#defineKey_Up0x4800//向上方向键
#defineKey_Down0x5000//向下方向键
#defineKey_Right0x4d00//向右方向键
#defineKey_Left0x4b00//向左方向键
voidmain()
{
intkey=bioskey(0);
switch(key)
{
caseKey_Up:{printf("向上方向键被按下");break;}
caseKey_Down:{printf("向下方向键被按下");break;}
caseKey_Left:{printf("向左方向键被按下");break;}
caseKey_Right:{printf("向右方向键被按下");break;}
}
}
C. 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,表示按下回车键,我们就执行循环,程序暂停,等待再次输入回车,程序继续运行。
D. 用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()
{
int key,key2;
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
}
E. 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;
}