Forum
Tipps
News
Menu-Icon

warum funktioniert kbhit() hier nicht richtig?

Dieses Programm sollte mir dienen, herauszubekommen, wie ich feststellen kann, ob und welche Taste gerade gedrückt ist. Doch das funktioniert nicht so, wie ich erwartet habe.

Warten auf die Eingabe ist erforderlich, damit ich überhaupt testen kann. Sonst beendet sich das Programm sofort. Aber es beendet sich auch, wenn ich den Sleep rausnehme, obwohl ich die Taste nicht loslasse. Es zeigt mir dann genau einmal ein Zeichen an. Warum tut es das?


int eingabe;
int main()
{

// warte auf drücken einer Taste
  while(!kbhit());
// solange die Taste gedrückt gehalten wird...
  while(kbhit())
       {

// Zeichen der Taste abholen
          eingabe = getch();
// Zeichen wieder ausgeben
          printf ("%c",eingabe);
// Tastaturpuffer leeren
          fflush(stdin);
// Warum ist diese Anweisung erforderlich?
          sleep(400);
       }
   return 0;
}



Noch eine Ergänzung:
Am fflush liegt es nicht. Den kann ich auch weglassen.

« Letzte Änderung: 27.05.05, 01:37:13 von cottonwood »

Antworten zu warum funktioniert kbhit() hier nicht richtig?:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich habe es jetzt rausgefunden. Laut Beschreibung soll kbhit() anzeigen, ob eine Taste gedrückt ist. Tut es aber nicht. Es zeigt an, ob Zeichen im Tastaturpuffer sind.

Dadurch ist auch das Sleep(400) erforderlich. Das nächste Zeichen ist erst im Tastaturpuffer, wenn die Wartezeit für die Verzögerung in der Zeichenwiederholung erreicht ist.


« DirectX Übersetzungsproblem bei ÜbungsbeispielClosed: Ist MCI-Ausgabe überhaupt asynchron möglich? »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...

Fn Taste
Die Fn Taste oder auch "Function Taste" gibt es vor allem auf der Notebook-Tastatur: Dort befindet sie sich, je nach Hersteller und Modell, in der Regel unten rechts oder...