kbhit() and getch() for WINDOWS:
Code:
#include <windows.h>
int _kbhit(void)
{
HANDLE hConsole;
INPUT_RECORD ir;
DWORD n;
hConsole = GetStdHandle(STD_INPUT_HANDLE);
while (PeekConsoleInput(hConsole, &ir, 1, &n))
if (ir.EventType == KEY_EVENT)
return 1;
return 0;
}
// I don't remember if this function requires an <ENTER>
// as in getchar()...
int _getch(void)
{
HANDLE hConsole;
DWORD cm, n;
char buffer[4]; // Probably 2 bytes will be sufficient...
// Using 4 to be sure...
hConsole = GetStdHandle(STD_INPUT_HANDLE);
GetConsoleMode(hConsole, &cm);
SetConsoleMode(hConsole, cm &
~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT));
ReadConsole(hConsole, buffer, 1, &n, NULL);
SetConsoleMode(hConsole, cm);
// Just 1 char needed!
return buffer[0];
}