Wenn ein Benutzer mit einer Befehlszeilenanwendung interagiert, muss er oft eine Taste drücken müssen die Eingabetaste drücken, um ihre Eingabe zu übermitteln. Einige Szenarien erfordern jedoch eine sofortige Zeichenerkennung ohne die Eingabetaste. Wie kann dies in Go für Windows-Systeme erreicht werden?
Für Windows-Systeme können Sie die Eingabepufferung deaktivieren und eingegebene Zeichen auf dem Bildschirm ausblenden, indem Sie die folgenden Schritte ausführen:
1. // disable input buffering exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run() 2. // do not display entered characters on the screen exec.Command("stty", "-F", "/dev/tty", "-echo").Run()
Wenn diese Befehle vorhanden sind, können Sie den folgenden Code verwenden, um Zeichen zu lesen, ohne die Eingabetaste zu drücken:
var b []byte = make([]byte, 1) for { os.Stdin.Read(b) fmt.Println("I got the byte", b, "("+string(b)+")") }
Wenn Sie dieses Programm ausführen, wird es ausgeführt Zeigt eine Meldung an, die den Benutzer auffordert, zum Beenden eine beliebige Taste zu drücken. Durch Drücken einer beliebigen Taste wird der Aufruf os.Stdin.Read(b) ausgelöst, der das gedrückte Zeichen zurückgibt und auf dem Bildschirm anzeigt.
Das obige ist der detaillierte Inhalt vonWie lese ich einzelne Zeichen aus der Konsoleneingabe in Go, ohne die Eingabetaste zu drücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!