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;
}