2009-08-16 71 views
1

有沒有什麼辦法可以在不使用Windows消息或std :: cin流的情況下在控制檯中獲得最後一次按鍵?我聽說標準庫中有一個函數。解決方案應該儘可能便攜。感謝您的幫助提前。控制檯獲取按鍵沒有Windows消息C++

+1

你關心最後一個*字符*還是最後一個*按鍵*(例如包括shift,控制和箭頭鍵等修飾符)?如果它是按鍵,那麼就簡單的便攜性而言,你幾乎沒有運氣。 – 2009-08-16 16:59:33

回答

1

還有conio.h但它不是技術上的標準。在Linux上,我的第一個Google命中暗示termios.h

0

不是真正的便攜式,但您可以使用GetAsyncKeyState甚至從Windows下的控制檯應用程序訪問當前的關鍵狀態。 技術性更強,同樣也是Windows特有的,將使用SetWindowsHookEx將鍵盤掛接到系統中的回調函數中,該函數只存儲最後一次按下的鍵。

但你的基本問題:控制檯+可移植性 - 似乎暗示cin是你最好的選擇 - 你需要什麼cin不提供?

0

你有沒有考慮過使用像pdcurses這樣的curses庫?這就是我所知道的唯一一個將執行控制檯管理的跨平臺庫。