Tastaturabfrage
-
Ich brauche Hilfe bei folgendem Programm:
#include <stdio.h> #include <conio.h> int main(void) { char i; while(1){ printf("Test\n"); if(getch()=='e') break; //hier stoppt die Schleife natürlich } return 0; }
Läuft soweit ganz gut!
Das Problem ist: Das Programm soll auch weiterlaufen, wenn man nichts eingibt.
Also die while schleife soll solange laufen bis irgendwer hergeht und die Taste e drückt!Ist das irgendwie zu lösen?
-
Die Antwort ist OS und Compiler abhängig und sie ist nicht im Standard enthalten
Die meisten Windows/DOS Compiler bieten im Rahmen ihrer Erweiterungen eine Funktionen wie kbhit() an
MS$ Visual C 6.0
Checks the console for keyboard input.
int _kbhit( void );Return Value
_kbhit returns a nonzero value if a key has been pressed. Otherwise, it returns 0.Remarks
The _kbhit function checks the console for a recent keystroke. If the function returns a nonzero value, a keystroke is waiting in the buffer. The program can then call _getch or _getche to get the keystroke.char c; while (true) { if (0==kbhit()); { c = getch (); printd("Taste: %c gedrückt",c) ; } else { // beliebige ander Aktionen }
-
WOW! Danke!
Das hilft mir wirklich sehr weiter!!!
(Gut das es kbhit auch bei Borland gibt )
P.S: Klasse Forum!