Tastatureingabe ohne Unterbrechung des Programmes
-
Hallo an alle*G*
Hab da so ein kleines Problem.
Ich schreibe grad ein Programm. In diesem steht eine schleife die alle 10ms einen Durchlauf macht. In dieser Schleife steht eine Funktion die folglich alle 10ms aufgerufen wird. So weit so gut.
Diese Funktion soll überprüfen ob irgendwelche Tasten auf der Tastatur gedrückt wurden oder noch gedrückt werden. Wenn keine gedrückt wurde oder grad wird so wird die Funktion einfach beendet und nach 10ms folglich wieder neu gestartet. Sollte der Benutzer doch ne Taste drücken so gibt die Funktion diese Taste an dem Bildschirm wieder und wird 10ms später erneut wieder aufgerufen(durch die schleife).
Das Problem: Wie kann ich auf die Tastatur "horchen"? Ich kenne nur den scanf()-Befehl. Dieser aber Unterbricht mein Programm und wartet bis der Benutzer explizit die Entertaste gedrückt hat. Folglich kriege ich für ein paar Sekunden nichts am Bildschirm da das Programm bei der Eingabe steht. (Es werden auch noch andere Sachen am Bildschirm wiedergegeben auser der Taste. Es ist also unbedingt erforderlich das die Funktion alle 10ms aufgerufen wird).
Weiß jemand eine Lösung für mein Problem?
-
welche plattform/OS?? ANSI C bietet da soweit ich weiß keine möglichkeiten, getc() wartet glaube ich auch, probier einfach ma
-
unter DOS = kbhit() ;
-
Hi harri,
hast du`s hinbekommen, denn genau das gleiche Problem habe ich auch!
Lass mich wissen was Sache ist!
Sehn uns in Englisch...
Gruß lulu
-
Also das Programm soll unter der Konsole laufen auf Win2000/Win XP - Plattform. Brauche ich etwa eine API-Funktion des Betriebssystem?
-
Wie gesagt, kbhit() müsste funktionieren.
#include <conio.h> nicht vergessen. Allerdings ist kbhit() kein Standard. Das heißt du bindest dich damit an einen bestimmten Compiler.