Veröffentlicht 2. April 200322 j Kann mir jemand erzählen, wie wärend des Ablaufs eines C-Programmes bestimmte Tastenbetätigungen eingelesen werden können? Ich hab vor ein kleines Spiel (naja, nichts besondres, muss nur als Programmierbeleg herhalten) zu bauen, und da möchte ich per Pfeiltasten (oder eben Tasten 4 und 6 des Num-Blockes) eine Art "Pseudografikpunkt" zu steuern. Und dafür muss das Programm ja auf die Tastendrücke reagieren, egal an welcher Stelle es grad durchlaufen wird. Für schnelle Hilfe wär ich sehr dankbar. Grüße, Jens
3. April 200322 j Hey You! Ich weis ja nicht was du wie und womit vorhast, aber wenn du für Komandozeile proggst, dann probier doch mal getch(); und das flush - en des Tastaturbuffers nicht vergessen! getch(); liefert die gedrückte Taste als ASCII zurück, wenn ich mich nicht irre! Ich hoffe das hilft dir etwas!
3. April 200322 j Mh, das hilft mir nicht wirklich weiter, da bei getch() das Programm anhält und auf eine Eingabe wartet. Ich brauche aber einen Befehl der sozusagen immer im Hintergrund auf eine Eingabe wartet, ohne dass das Programm anhält.
3. April 200322 j sorry, ist mir im nachhinein auch schon durch den kopf gegangen! ich bin auch noch neu im geschäft, sorry da kann ich dir leider nicht mehr weiterhelfen!
3. April 200322 j @SGDJens: Was du vorhast, ist AFAIK mit Standard-C nicht möglich. Es gibt aber betriebssystemspezifische Funktionen, die das können. Für die Abfrage könntest du z.B. Threads benutzen.
3. April 200322 j Na so ein **** :-(( Ich kenn mich doch mit Threads nicht aus. In Turbo Pascal geht das so schön einfauch und in C ist das nicht möglich? - das ist ja echt blöd... Gibt das keine zusätzliche library die solch eine Funktion enthält? Trotzdem Danke für die Antworten!
3. April 200322 j Originally posted by SGDJens Gibt das keine zusätzliche library die solch eine Funktion enthält? Die gibt's mit Sicherheit, aber wie ich schon sagte, nicht mit Standard-C. Du musst uns also schon verraten, für welches Betriebssystem und mit welchem Compiler du arbeitest.
3. April 200322 j Da kannst du mit kbhit (auch aus conio.h) testen, ob eine Taste gedrückt wurde. Wenn kbhit nicht Null zurückgibt, kannst du getch aufrufen, und sicher sein, dass es nicht blockiert.
3. April 200322 j Juchhuu, es klappt! *freu* Ich danke dir vielmals! Gibt es da auch Betriebssysteme (also gängige wie Windows ..., Linux, Unix) , unter denen das nicht klappt? Ich meine unter Windows NT / 2000 sollte es dann keine Probleme geben, oder?
7. April 200322 j Originally posted by SGDJens Juchhuu, es klappt! *freu* Ich danke dir vielmals! Gibt es da auch Betriebssysteme (also gängige wie Windows ..., Linux, Unix) , unter denen das nicht klappt? Da conio.h windowsspezifisch ist, dürftest Du damit unter Unix/Linux ein Problem haben. Hier könntest Du beispielsweise auf die curses-Bibliothek oder termio zurückgreifen. Generell ist die Abfrage der Tastatur - mit wenigen Ausnahmen (siehe c-lib) - betriebssystemabhängig. Nic
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.