C++ key input in Windows console

2019-04-09 18:46发布

问题:

I'm currently developing various console games in Windows that won't really work using regular input via cin.

How can I (In a simple way using only standard windows libraries available in MSVC):

  • Make the program wait for a (specific?) key press and return the key ID (It would have to work for all keys including the arrow keys)

  • During a real-time game check for the last pressed key of the user and if there was any key pressed since the last check.

It would really help if you could include a short example program for your solution

回答1:

AFAIK you can't do it using the standard C runtime. You will need to use something such as the Win32 function GetAsyncKeyState.



回答2:

You want the Windows Console API, for example PeekConsoleInput.



回答3:

I've got just what you need.

Here enjoy pal: C++ source

It's pretty much self-explanatory but if you have any doubts my email is jacobossm@gmail.com