⑴ c语言问题,如何控制字符上下左右~~
/*TC下编译通过*/
#include<stdio.h>
#include<time.h>
#include<conio.h>
#define ESC 0x011b
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00
void main()
{
int key=0;
int x=1;
int y=1;
gotoxy(x,y);
printf("%c",N);
while (key != ESC)
{
while (bioskey(1) == 0);
key = bioskey(0);
switch (key)
{
case UP:
clrscr();
gotoxy(x,y-1);
printf("%c",N);
y=y-1;
break;
case DOWN:
clrscr();
gotoxy(x,y+1);
printf("%c",N);
y=y+1;
break;
case LEFT:
clrscr();
gotoxy(x-1,y);
printf("%c",N);
x=x-1;
break;
case RIGHT:
clrscr();
gotoxy(x+1,y);
printf("%c",N);
x=x+1;
break;
default:
break;
}
}
}
关于vc的编程,请参考windows程序设计第五版和MFC核心编程
⑵ c语言程序,实现上下键的操作,高手进
对于键盘输入,都是有操作系统来处理的接受,并传给程序的,对于普通的c语言程序系统传入,对于控制键消息一般都被系统截取并处理 ,你想接受处理控制键,需要系统调用获得消息,这时需要一些中间库或者特殊的系统调用,如windows的mfc 钩子函数等等,linux的一些现成的库和read select系统调用等等
⑶ C语言 关于用键盘的上下左右箭头控制移动的问题
int x=1,y=1,i; // 用 1,与你的条件语句匹配
int cmd,keyCode; // 用 int 型
if(keyCode==75){x=x-1;if (x<=0)x=1;}
else if(keyCode==77){++x;}
else if(keyCode==72){y=y-1;if (y<=0) y=1;}
else if(keyCode==80){++y;}
⑷ c语言怎样实现用上下左右控制程序执行
给你个思路吧,读取键盘输入,用5个if,就是这样。
⑸ C语言控制上下左右的函数是什么
希望这个能对你有帮助:#include
#include
int
main(void){
int
c
;
while(1){
c
=
getch();
if(c==0)
c=getch();
//
getch在遇到方向键时会返回0
再使用getch便会返回扫描码
if(
c
==
72
)
printf("UP\n");
//
我帮你把上下左右数据调出来
你用的时候define成
UP来使用这个值就可以了
if
(
c
==
80)
printf("DOWN\n");
if
(
c
==
75)
printf("LEFT\n");
if
(
c
==
77)
printf("RIGHT\n");
if(c
==
113)
//按q退出
break;
}
return
0;
}
⑹ C语言如何能让这个图像用上下左右控制数组
C/C++里面的数组名字会退化为指针,所以数组名a实际指的是数组的第一个元素的地址。而数组名作为指针来讲有特殊性,它正在它所指向的内存区域中,&a的值和a的数值是相同的(可以输出观察一下),但是类型和意义不同。而指针的加法操作和指向的数据类型密切相关。
⑺ 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分别对应着上下左右。
⑻ 在C语言中,怎么编写用光标键控制一个字符上下左右移动。
先用背景色在字符原地打印一次,再移动到要打印的位置,设置为前景色,打印该字符.
⑼ 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语言如何捆绑上下左右四个键
上下左右没有对应的ascii码。在按下方向按键的时候会out组合码,也就是一次按键,两个getch都会有值。
代码修改成
===============
#include
void
main()
{
int
c,d;
c
=
getch();
d
=
getch();
printf("[
%d
%d
]\n",c,d);
}
===============
得到以下结果
[
224
72
]
[
224
80
]
[
224
75
]
[
224
77
]
参照http://..com/question/144253607.html,会有一个更方便的代码,让你连续获取ascii。