2012-11-04 79 views
2

我正在編寫C++ CLI應用程序如何檢測用戶是否按下了任何鍵。我已經看到,在C#中,但如何能在C++如何檢測用戶在C++(控制檯)中是否按下了任何鍵?

while(1) 
    { 
     while(/* code to check if any key is pressed*/) 
      {  //rest of the code 
        // sleep function 
      } 
    } 

提示來實現:就像在CLI遊戲移動或當一個鍵被按下采取某種行動或不做任何事情,如果沒有輸入給出。

+0

我發現我們也可以在C++中使用_khbit()函數。如果按任何鍵,_khbit等於1。您必須清除_khbit緩衝區,否則它將保持爲1.清除的方法是character = getch();這會將上一次輸入的字符保存在可以比較的字符中,並決定在哪個鍵上執行哪個操作。 – Osaid

回答

1

我們可以在C++中使用_kbhit()函數。如果按下任何鍵,_kbhit等於1。您必須清除_kbhit緩衝區,否則它將保持爲1.清除的方法是character = getch();這會將上一次輸入的字符保存在可以比較的字符中,並決定在哪個鍵上執行哪個操作。

0

While循環可以將CPU消耗,我不勸告忙等待的方法,而應該認爲事件掛鉤的。

在這裏,你可以閱讀有關WINAPI擊鍵事件掛鉤C++ Win32 keyboard events

如果你仍然有興趣使用while循環,你也應該通過檢查條件爲假後睡覺(如了nanosleep)

釋放一些資源
相關問題