2017-01-02 177 views
-1

我在窗戶上使用visual c + +,我想打破代碼(如等待一個鍵被按下(我已經這樣做了)),但檢測哪個鍵被按下。
如C#的.ReadKey()c#中的.ReadKey()的C++版本是什麼?

+0

應該讓你朝着正確的方向前進:https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx – user4581301

+0

在重讀時,這可能會更好爲您:https://msdn.microsoft.com/en-us/library/windows/desktop/ms646299(v=vs.85).aspx – user4581301

+0

控制檯應用程序?你有什麼樣的主循環或事件循環?您應該顯示一些最小的示例代碼,或許在您想要執行'ReadKey()'的地方使用'cin'。 – hyde

回答

0

如果該鍵不是一個特殊的鍵有點(不按Ctrl,Alt鍵......),你只需要做到這一點:

char c; 
std::cin >> c; 

或者:

std::string s; 
std::getline(std::cin,s); 

這兩個將需要用戶按下「Enter」,然後再取回控制權。

如果您不希望用戶必須按Enter,請檢查本帖子的this answerCapture characters from standard input without waiting for enter to be pressed

+0

但我想這樣做,他們不必按下輸入事後,就像他們點擊一個然後做一些事情,否則,如果他們點擊B然後說好做,否則告訴他們,他們沒有點擊A或B或東西 – NathanProgrammer

+0

@ Kid8:然後做第一個(使用'char c'),這將等待用戶按下一個鍵,'c'將指示你按下了哪一個鍵。 – jpo38

+1

這是功能的一個可怕的近似值。因爲它沒有適當的鍵盤API,所以你需要離開C++標準庫。 –