Якщо у вас є Windows, ви можете використовувати PeekConsoleInput, щоб визначити, чи є вхід,
HANDLE handle = GetStdHandle(STD_INPUT_HANDLE);
DWORD events;
INPUT_RECORD buffer;
PeekConsoleInput( handle, &buffer, 1, &events );
потім використовуйте ReadConsoleInput для "споживання" вхідного символу.
PeekConsoleInput(handle, &buffer, 1, &events);
if(events > 0)
{
ReadConsoleInput(handle, &buffer, 1, &events);
return buffer.Event.KeyEvent.wVirtualKeyCode;
}
else return 0
чесно кажучи, це якийсь старий код, який у мене є, тому вам доведеться трохи поспілкуватися з ним.
Холодна річ, що він читає введення, не вимагаючи нічого, тому символи взагалі не відображаються.