當前位置:成語大全網 - 新華字典 - 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,表示按下回車鍵,我們就執行循環,程序暫停,等待再次輸入回車,程序繼續運行。