eingabe checken, aber nicht darauf warten
-
Ich suche nach im prinzip nach einem getch() befehl der mit sleep() gekoppelt ist,
quasi nur x millisekunden auf eine eingabe wartet und danach weitermacht auch wenn keine eingabe kommt...
kann mir jemand helfen?
-
mit den funktionen der standardbibliothek geht das nicht. da mußt du auf das betriebssystem zurückgreifen.
-
habe xp also windows wie sähe sowas aus
-
Schade, unter Linux geht das ganze einfach mit select(). Naja unter Windows musst du dir glaub ich selber was programmieren. Ich hab mal was gemacht, ist bestimmt nicht elegant:
#include<iostream> #include<windows.h> bool WarteAufEingabe(int *Taste, int ms) { int Zeit = GetTickCount(); while(GetTickCount() - Zeit < ms) { for(int i = 0; i < 256; /* Ich weiß jetzt nicht die max. Zahl */ i++) { if(GetAsyncKeyState(i)) { *Taste = i; return true; } } } return false; } int main() { int Taste; if(WarteAufEingabe(&Taste, 10000)) { std::cout << "Folgende Taste wurde gedrueckt:" << Taste << std::endl; } else { std::cout << "Keine Taste wurde in der Zeit gedrueckt." << std::endl; } system("PAUSE"); }
mfg.
-
hab die funktion _kbhit() (oder so ähnlich) gefunden
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
kbhit(), getch() und sleep() hier kombiniert ist schon das richtige