2011-08-16 27 views

回答

1

我建議您使用GNU Readline這是因爲它是通過add_history函數(有一個really simple example here)提供開箱即用的功能之一。滾動歷史記錄默認綁定到向上和向下箭頭。當然,如果你在基於Linux的系統上,這只是一個選項。

如果你有kbhit()getch()做手工的方式,這也不會是跨平臺 - 儘管它已經有一段時間 - 我不記得,你可能會要求getch()兩次。箭頭鍵沒有ASCII碼,所以按下箭頭會產生兩個字符。您將需要放棄第一個(應該是空終止符'\0'),並將您的決定基於第二個。沿線的東西:

if (kbhit()) 
{ 
    ch1 = getch(); 
    if (ch1 != '\0') 
    { 
     // not an arrow 
    } 
    else 
    { 
     ch2 = getch(); 
     switch(ch2) 
     { 
       // might be an arrow key, H - up, P - down, K - left, M - right 
     } 
    } 
} 

我想說的是,這是一個痛苦,所以使用Readline,如果你可以。

0

HY

char input = getch(); 

是獲得當前的鍵盤輸入。如果你想檢查一個鍵是否被按下,你可以檢查功能kbhit()。箭頭inputnumber是: 左:75 右:77 下來:80 了:72

所以,你可以在輸入開關,檢查是否箭頭點擊。

相關問題