Heim > Backend-Entwicklung > Golang > Wie implementiert man die „getchar()'-Funktionalität von C für die Eingabe einzelner Zeichen, einschließlich Tabulatorzeichen, in Go?

Wie implementiert man die „getchar()'-Funktionalität von C für die Eingabe einzelner Zeichen, einschließlich Tabulatorzeichen, in Go?

Patricia Arquette
Freigeben: 2024-12-30 16:01:13
Original
356 Leute haben es durchsucht

How to Implement C's `getchar()` Functionality for Single Character Input, Including Tab, in Go?

Zeicheneingabe abrufen Ähnlich wie getchar() von C in Go

Mit der getchar()-Funktion von C können Benutzer ein einzelnes Zeichen über die Konsole eingeben. Allerdings gibt es in Go kein direktes Äquivalent, das das Drücken von Tabulatoren verarbeitet. Dies kann bei der Entwicklung von Konsolenanwendungen mit Funktionen zur automatischen Vervollständigung eine Herausforderung darstellen.

Go-Äquivalent

Eine mögliche Alternative in Go ist die Verwendung von bufio.Reader. Hier ist ein Beispiel:

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {

    reader := bufio.NewReader(os.Stdin)
    input, _ := reader.ReadString('\n')

    fmt.Printf("Input Char Is : %v", string([]byte(input)[0]))
}
Nach dem Login kopieren

Obwohl bufio.Reader ein einzelnes Zeichen lesen kann, muss der Benutzer die Eingabetaste drücken, um das Zeichen einzugeben. Für die Erkennung eines Tab-Drucks ist dies nicht geeignet.

Zusätzliche Überlegungen

Für diesen speziellen Bedarf ist getchar() von C nicht geeignet, da es darauf wartet, dass der Benutzer die Eingabetaste drückt. Zu den alternativen Optionen gehören stattdessen:

  • Ncurses/Readline-Bindungen verwenden (z. B. Goncurses)
  • Eigenen Eingabehandler entwickeln
  • Externe Befehle ausführen (z. B. stty) verwenden os.Exec

Referenzen:

  • [Google Groups-Diskussion zu getchar()](https://groups.google.com/forum /?fromgroups=#!topic/golang-nuts/zhBE5MH4n-Q)
  • [Using bufio.Reader](https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/S9AO_kHktiY)
  • [ReadLine-Paket](https://groups.google.com /forum/?fromgroups=#!topic/golang-nuts/icMfYF8wJCk)

Das obige ist der detaillierte Inhalt vonWie implementiert man die „getchar()'-Funktionalität von C für die Eingabe einzelner Zeichen, einschließlich Tabulatorzeichen, in Go?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage