Heim > Backend-Entwicklung > Golang > Wie kann ich die „getchar()'-Funktionalität von C in Go replizieren, einschließlich der Tab-Press-Erkennung?

Wie kann ich die „getchar()'-Funktionalität von C in Go replizieren, einschließlich der Tab-Press-Erkennung?

Patricia Arquette
Freigeben: 2024-12-19 08:56:08
Original
728 Leute haben es durchsucht

How Can I Replicate C's `getchar()` Functionality in Go, Including Tab Press Detection?

Go-Funktion ähnlich wie Getchar in C

In der C-Programmierung ist getchar() eine häufig verwendete Funktion zum Lesen eines einzelnen Zeichens aus der Konsole. Bei der Arbeit mit Go ist jedoch eine ähnliche Funktion erforderlich, um verschiedene Anwendungsfälle zu bewältigen, einschließlich der Erkennung des Drückens der Tabulatortaste.

Go-Äquivalent von getchar()

Um in Go eine ähnliche Funktionalität wie getchar( zu erreichen ) in C kann der folgende Code verwendet werden:

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

Dieser Code liest mit bufio.NewReader ein einzelnes Zeichen aus der Konsole und speichert es in der Variableneingabe. Das erste Element des Eingabebyte-Arrays stellt das gedrückte Zeichen dar.

Handhabung des Tab-Drucks

Zur Erkennung eines Tab-Drucks speziell ist getchar() nicht geeignet, da hierfür das Drücken der Eingabetaste erforderlich ist. Ziehen Sie stattdessen in Betracht, Bibliotheken zu verwenden oder Ihre eigenen Funktionen zu implementieren, um einen einzelnen Tastendruck zu erfassen, wie zum Beispiel:

  • Ncurses oder Readline-Bindungen verwenden
  • Eine benutzerdefinierte Funktion erstellen (siehe einen Ausgangspunkt unter http ://play.golang.org/p/plwBIIYiqG)
  • Ausführen von Befehlen wie stty oder jLine mit os.Exec

Zusätzliche Hinweise

Es ist wichtig zu bedenken, dass diese Lösungen in ihrer Implementierung und Unterstützung für die Handhabung des Tabulatordrucks variieren können. Weitere Informationen finden Sie in den in den Referenzen bereitgestellten Ressourcen Informationen:

  • https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/zhBE5MH4n-Q
  • https://groups.google .com/foru m/?fromgroups=#!topic/golang-nuts/S9AO_kHktiY
  • https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/icMfYF8wJCk

Das obige ist der detaillierte Inhalt vonWie kann ich die „getchar()'-Funktionalität von C in Go replizieren, einschließlich der Tab-Press-Erkennung?. 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