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.
cottonwood (10.878) 167x Beste Antwort 275x "Danke"
|