Es en Windows con Dev-C++. He encontrado una funcion que se llama kbhit que hace exactamente eso, mirar el buffer del teclado. Funciona perfectamente pero el problema esta en que tengo 3 whiles. Para el primero me funciona bien pero para los 2 siguientes no, ya que el buffer no esta vacio. Ya he hecho fflush(stdin) pero no sirve...
De pasada puede ser asi:
#include <stdio.h>
#include <windows.h>
int main()
{
int i = 0;
while (i<1)
{
if(GetAsyncKeyState(13)) i++;
Sleep(100);
}
while (i<2)
{
if(GetAsyncKeyState(13)) i++;
Sleep(100);
}
while (i<3)
{
if(GetAsyncKeyState(13)) i++;
Sleep(100);
}
MessageBox(0, L"Terminado", L"Terminado",MB_OK | MB_ICONSTOP);
return 0;
}
A no ser que necesites que los 3 se inicien al mismo tiempo.
Si te decides que sea multiplataforma te recomiendo Qt4
protected:
void keyPressEvent(QKeyEvent * event);
En los proyectos con GUI funciona muy bien.