¿Alternative zu getch() in einer Konsolenapplikation?
-
Hallo,
der Titel sagt schon einiges aus ^^
Ich suche nach irgendeiner Funktion, die if(getch() == 'a'){... wenn möglich sogar mit VKeys ersetzen kann.
Danke für jede hilfreiche Antwort :p
-
Unter Windows: GetAsyncKeyState(). Problem: Du liest damit immer die aktuelle Eingabe, auch wenn den Programm im Hintergrund läuft, und du was in Word tippst...
Grüße,
Martin
-
Danke, das ist genau das was ich gesucht habe!!!
< : - D
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Also ich hatte das gleiche Problem und hab mir dazu einfach die getch funktion erweitert.
int myGetch () { int c; fflush ( stdin ); c = getch (); if ( c == 0xE0 ) c = getch (); return c; }
die funktion liefert dann den dezimalen code der taste.
dann kann man die codes einfach mit #define einem namen zuweisen.#define KEY_UP 72 // für Pfeiltaste rauf #define KEY_DOWN 80 // --- "" --- runter #define KEY_LEFT 75 // --- "" --- links #define KEY_RIGHT 77 // usw ... #define KEY_ENTER 13 #define KEY_ESCAPE 27
-
Erstens: "fflush(stdin);" ist (sehr) böse - aka "undefinied behaviour"
Zweitens: Wie willst du die Steuertasten von "normalen" Eingaben unterscheiden? ('H' und pfeil hoch liefern den selben Rückgabewert)