SGDJens Geschrieben 2. April 2003 Geschrieben 2. April 2003 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 Zitieren
Daywalker81 Geschrieben 3. April 2003 Geschrieben 3. April 2003 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! Zitieren
SGDJens Geschrieben 3. April 2003 Autor Geschrieben 3. April 2003 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. Zitieren
Daywalker81 Geschrieben 3. April 2003 Geschrieben 3. April 2003 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! Zitieren
Klotzkopp Geschrieben 3. April 2003 Geschrieben 3. April 2003 @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. Zitieren
SGDJens Geschrieben 3. April 2003 Autor Geschrieben 3. April 2003 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! Zitieren
Klotzkopp Geschrieben 3. April 2003 Geschrieben 3. April 2003 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. Zitieren
SGDJens Geschrieben 3. April 2003 Autor Geschrieben 3. April 2003 Betriebssystem: Windows XP Compiler: lcc-win32 Zitieren
Klotzkopp Geschrieben 3. April 2003 Geschrieben 3. April 2003 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. Zitieren
SGDJens Geschrieben 3. April 2003 Autor Geschrieben 3. April 2003 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? Zitieren
nic_power Geschrieben 7. April 2003 Geschrieben 7. April 2003 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.