⑴ 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。