หากคุณใช้ 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
ความซื่อสัตย์นี่คือจากรหัสเก่าที่ฉันมีดังนั้นคุณต้องทำตัวเล็กน้อยกับมัน
สิ่งที่เจ๋งคือมันอ่านอินพุตโดยไม่ต้องแจ้งอะไรเลยดังนั้นตัวละครจึงไม่แสดงเลย