c语言怎么接收方向键

char k=getch();
switch(k)
{
case 72:
//上
break;

case 80:
//下
break;

case 75:
//左
break;

case 77:
//右
break;

}

Ⅱ 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语言实现方向键菜单选取,如图

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#defineboolint
#definefalse0
#definetrue1
voidshow(inti);
intmain(void)
{
charkey,key2;
boolneedNextKey=false;
inti=1;
system("color1f");
printf("按任意启动菜单:");
while((key=_getch())!=27)//pressESCtobreak
{
system("cls");
if(needNextKey)
{
if(key2==-32)
{
if(key==72)//up
{
i--;
if(i<=0)i++;
show(i);
}
elseif(key==80)//down
{
i++;
if(i>=4)i--;
show(i);
}
}
needNextKey=false;
}
if(key<=0)
{
key2=key;
needNextKey=true;
}
}
printf_s("pressanykeytocontinue... ");
_getch();
return0;
}
voidshow(inti)
{
if(i==1)
{
printf("->Menu1 Menu2 Menu3 ");
printf(" Esctoquit: ");
}
elseif(i==2)
{
printf("Menu1 ->Menu2 Menu3 ");
printf(" Esctoquit: ");
}
elseif(i==3)
{
printf("Menu1 Menu2 ->Menu3 ");
printf(" Esctoquit: ");
}
}

Ⅳ C语言怎么输入方向键左

windows 函数有这个API
或者用最简单的getchar就可以
上下左右四个键,每个都可以从getchar获取到内3个字节数据
分别是
上:0x1b5b41

下:容0x1b5b42
左:0x1b5b44
右:0x1b5b43

Ⅳ c语言如何使用键盘上的上下左右键

int keydown()
{
char c;
if((c=getch())<0)c=getch();
switch(c){
case 72://printf("\n你的按键为向上");break;
case 75: //printf("\n你的按键为向左");break;
case 77: //printf("\n你的按键为向右");break;
case 80: //printf("\n你的按键为向下");break;
default: //printf("\n按键不是方向键");break;
}
return c;}
我也碰到这种事,暂时用这个..

Ⅵ c语言方向键ASCII码的问题

键盘上的每个按键都有扫描码和ASCII码组成的组合码,函数getchar()不会读出扫描码,只能读出ASCII码,C语言中函数_getch()【conio.h,不回显】可以读出扫描码。
方向键、INSERT、DELETE、END、HOME、PgUp、PgDn的扫描码是224(0XE0).
F1 -- F11的扫描码是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; //方向键为“上”且原方向不为下时,让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.

}

if (flag==13)

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

}

}

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

Ⅷ C语言方向键ASCII码

if(_kbhit())//如果按下的是方向键或功能键,_getch()要调用两次,第一次返回0XE0或0
{
fflush(stdin);
c=_getch();//上:72下:80左:75右:77
if(c==0XE0||c==0)
{
c=_getch();
if(c==72&&direct!=1&&direct!=3)
{
direct=3;
}

Ⅸ C语言 方向键键值

ASCII里面不含F1-F12,他是字符表,又不是键盘代码表
用vbKeyF1~vbKeyF16的预定义常量吧
.net下可以用Keys.F1~F16
直接引用值的话F1=112,F16=127

Ⅹ c语言怎么按方向键控制程序 c = getchar(); 我按了上 但是没有反应

在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; //方向键为“上”且原方向不为下时,让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.

}

}

注:这个函数来源于某些“贪吃蛇”的代码,略有修改,足可获取方向键值。其中的1、2、

3、4分别对应着上下左右。