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
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!
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.
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!
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.
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!
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.
SGDJens Geschrieben 3. April 2003 Autor Geschrieben 3. April 2003 Betriebssystem: Windows XP Compiler: lcc-win32
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.
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?
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden