Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Schleife in C soll solange wiederholt werden bis Taste gedrückt wird? Wie geht das?





Frage

Ich brauche für eine Projektarbeit für die Schule ein Programmteil, dass solange abläuft bis irgendeine Taste gedrückt wird. Geht das in C mit irgendeier Funktion? Ralf

Antwort 1 von semi

Meinst Du ein bestimmtes Zeichen oder soll es rattern, bis man auf irgendeine Taste drückt?
Das zweite ist keine gute Idee und geht vermutlich nur mit Assembler.
(Int. 16h, Fkt. 1 - Tastaturpuffer checken)



Antwort 2 von ralfabeta

Genau. Rattern bis irgendeine Taste gedrückt wird. Kommt mir so simpel vor - geht es wirklich nicht so einfach. Es klingt doch wie ein Problem, das alle Nase lang vorkommt.

Antwort 3 von semi

Eine Schleife "endlos" ohne Pausen laufen zu lassen, ist ohne preemptives Multitasking ziemlich kritisch.
So ein Programm würde alles andere blokieren.

while:
  mov ah, 1    
  int 16h      ; Tastaturpuffer prüfen
  jz end_while ; Zeichen im Puffer (Z=1)?

; Schleifeninnere

  jmp while
end_while:

Wenn Du es in C machen willst, dann über Keyboard-Hook (siehe KeyboardProc, SetWindowsHookEx usw.)

Zweite Möglichkeit. Eine Endlos-Schleife in einem neuen Thread.
Im Hauptthread auch Eingabe warten und bei der Eingabe eines Zeichens das Thread killen. Absoluter Schwachsinn.

Wozu brauchst Du sowas?

Antwort 4 von semi

Ehhh... ich kaufe ein 'c' wie character.
blockieren statt blokieren :-)

Antwort 5 von ralfabeta

Ich glaube, es geht noch einfacher. Mit der Funktion kbhit(). Habe ich gereade in einer C-Doku gefunden. Ist allerdings keine ANSI C, glaube ich!
ralfabeta


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: