Maison >développement back-end >Golang >Comment puis-je obtenir la fonctionnalité de « getchar() » de C dans Go, y compris la gestion des touches de tabulation ?

Comment puis-je obtenir la fonctionnalité de « getchar() » de C dans Go, y compris la gestion des touches de tabulation ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-03 07:49:40341parcourir

How Can I Achieve the Functionality of C's `getchar()` in Go, Including Tab Key Handling?

Trouver un équivalent Go pour getchar() de C

En programmation C, getchar() est une fonction couramment utilisée pour lire un seul caractère à partir de l’entrée standard sans mise en mémoire tampon. Go propose-t-il une fonction présentant des fonctionnalités similaires, en particulier une fonction capable de gérer les frappes de tabulation dans un environnement de console ? Cette capacité s'avérerait déterminante dans le développement de fonctionnalités de saisie semi-automatique pour une application console.

L'alternative Go : une ventilation détaillée

Go ne fournit pas d'équivalent direct au getchar( ). Cependant, nous pouvons obtenir des fonctionnalités similaires en utilisant le code suivant :

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

Explication :

Ce code Go utilise les étapes suivantes :

  1. Créez un bufio.Reader pour lire l'entrée de l'entrée standard, faisant écho à la fonctionnalité de getchar() dans C.
  2. Utilisez la méthode ReadString() pour lire une ligne d'entrée de l'utilisateur.
  3. Convertissez le premier octet de la chaîne d'entrée en caractère à l'aide de la conversion et de la conversion de type.
  4. Imprimez le caractère sur la console, ressemblant au format de sortie de getchar() dans C.

Remarque :

Il est important de se rappeler que getchar() en C oblige l'utilisateur à appuyer sur la touche Entrée après avoir saisi un caractère. Le code Go présenté ici n'a pas cette limitation. Si vous avez besoin de ce comportement, envisagez d'explorer des approches alternatives telles que les malédictions ou la lecture en ligne, comme suggéré dans la documentation fournie.

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