Was gibt getch() in Turbo C zurück?Ich bin sicher, dass es sich nicht um ASCII-Werte für gedrückte Tasten handelt

StackOverflow https://stackoverflow.com//questions/25045096

  •  21-12-2019
  •  | 
  •  

Frage

Was gibt getch() in Turbo C zurück?Ich habe es zum Initialisieren der Pfeiltasten für ein Programm verwendet. Die von getch() zurückgegebenen Werte waren 77, 80, 72 und 75, was ASCII-Werte für Alphabete sind, was eindeutig darauf hinweist, dass es sich nicht um ASCII-Werte handelt.Wenn es sich nicht um ASCII-Werte handelt, welche sind sie dann?

War es hilfreich?

Lösung

getch() im Nichtstandard vorgesehen conio.h gibt ein int zurück:

#include <conio.h>

int     getch(void);

aus der Referenz:

A single character from the predefined standard input handle is read and returned. 
The input is not buffered. If there is a character pending from ungetch 
(see section ungetch), it is returned instead. The character is not echoed to the 
screen. This function doesn't check for special characters like Ctrl-C.

If the standard input handle is connected to the console, any pending output in the 
stdout and stderr streams is flushed before reading the input, if these streams are 
connected to the console.

Return Value

    The character.

Portability

    ANSI/ISO C  No
    POSIX       No 

Ihr Problem mit den Pfeiltasten ist, dass sie sind keine Einzelbyte-Zeichen.Um mit den Pfeiltasten umgehen zu können, müssen Sie damit umgehen Mehrbyte Codes.Die Zahlen, die Sie erhalten, sind einfach eines der beiden Bytes der Schlüsselcodes.

Ein Beispiel zum Lesen der Codes finden Sie unter (Wie man Pfeiltasten liest) Cheat-Code in der C-Programmierung (bei Eingabe über die Tastatur)

Andere Tipps

Getch () -Funktion Gibt zwei Keycodes für Pfeiltasten zurück (und einige andere spezielle Tasten), er gibt zunächst entweder 0 (0x00) oder 224 (0xE0) zurück und gibt dann einen Code zurück, der den Tastendruck identifiziert, der gedrückt wurde.

.

Für die Pfeiltasten gibt es 224 zuerst zurück, gefolgt von 72 (oben), 80 (nach unten), 75 (links) und 77 (rechts).Wenn die Num-Pad-Pfeiltasten (mit NUMLOCK AUS) gedrückt werden, gibt Gatch () zuerst 0 anstelle von 224 zurück.

Sie können also so etwas tun:

generasacodicetagpre.

Bitte beachten Sie, dass Gatch () in keiner Weise standardisiert ist, und diese Codes können von Compiler bis zum Compiler variieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top