Maison >développement back-end >Golang >Comment puis-je répliquer la fonctionnalité « getchar() » de C dans Go, y compris la détection de pression sur les tabulations ?

Comment puis-je répliquer la fonctionnalité « getchar() » de C dans Go, y compris la détection de pression sur les tabulations ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-19 08:56:08715parcourir

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

Fonction Go similaire à Getchar de C

En programmation C, getchar() est une fonction couramment utilisée pour lire un seul caractère à partir de la console. Cependant, lorsque vous travaillez avec Go, une fonction similaire est requise pour gérer divers cas d'utilisation, y compris la détection des pressions sur les tabulations.

Go Équivalent de getchar()

Pour obtenir des fonctionnalités similaires dans Go comme getchar( ) en C, le code suivant peut être utilisé :

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]))

}

Ce code lit un seul caractère de la console à l'aide de bufio.NewReader et le stocke dans l'entrée variable. Le premier élément du tableau d'octets d'entrée représente le caractère enfoncé.

Gestion de la pression sur une tabulation

Pour détecter spécifiquement une pression sur une tabulation, getchar() ne convient pas car il nécessite d'appuyer sur la touche Entrée. Envisagez plutôt d'utiliser des bibliothèques ou d'implémenter vos propres fonctions pour capturer une seule frappe, par exemple :

  • Utiliser ncurses ou des liaisons readline
  • Créer une fonction personnalisée (voir un point de départ sur http ://play.golang.org/p/plwBIIYiqG)
  • Exécuter des commandes comme stty ou jLine en utilisant os.Exec

Notes supplémentaires

Il est important de se rappeler que ces solutions peuvent varier dans leur mise en œuvre et leur prise en charge pour la gestion de la presse à onglets. Reportez-vous aux ressources fournies dans les références pour plus d'informations. informations :

  • 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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn