Heim > Backend-Entwicklung > Golang > Wie lese ich einzelne Zeichen aus der Konsoleneingabe in Go, ohne die Eingabetaste zu drücken?

Wie lese ich einzelne Zeichen aus der Konsoleneingabe in Go, ohne die Eingabetaste zu drücken?

DDD
Freigeben: 2024-12-15 08:10:12
Original
925 Leute haben es durchsucht

How to Read Single Characters from Console Input in Go Without Pressing Enter?

Lesen eines Zeichens ohne Eingabetaste in Go

Problem

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?

Lösung

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()
Nach dem Login kopieren

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)+")")
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage