2012-03-16 97 views
0

我已經搜索了一段時間,在Windows系統中找到一個函數用於C編程,以確定哪個按鍵被按下,而不需要用'確認'鍵來確認。按回車鍵不用確認

我發現kbhit(),但這隻在按鍵時返回正值,而在沒有按鍵的情況下爲0。我想要一個函數的同樣的行爲,但返回我的密鑰的ASCII碼。

原因是我想在基於控制檯的遊戲上構建一些控件,我需要箭頭來導航玩家。 'A'會將我的觀點左移,'D'正確。

在這個時刻,我需要按「a」和「進」,「D」和「進入,」用簡單的scanf("%c"),並且將是很好,如果控制檯會做出什麼反應只有當按下一個字母,而不是+進入每一個動作。

回答

3

從事物的聲音,你想是這樣的:

#include <conio.h> 

int ch; 

if (kbhit()) 
    ch = getch(); 

getch()塊等待輸入,但它會讀取無需緩衝一個按鍵,因此它不會等你按下回車鍵。

+0

實際上,如果,但是是(的kbhit()!)。從來不知道getch如何工作。總是用它來停止控制檯退出等等。謝謝。 – 2012-03-16 16:51:32

4

看看這個:

char ch; 
ch = getch(); 
if(ch == 's') printf("you pressed s \n");