Maison > développement back-end > Golang > Comment implémenter la fonctionnalité « getchar() » de C pour la saisie d'un seul caractère, y compris la tabulation, dans Go ?

Comment implémenter la fonctionnalité « getchar() » de C pour la saisie d'un seul caractère, y compris la tabulation, dans Go ?

Patricia Arquette
Libérer: 2024-12-30 16:01:13
original
356 Les gens l'ont consulté

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

Obtenir la saisie de caractères Semblable à getchar() de C dans Go

La fonction getchar() de C permet aux utilisateurs de saisir un seul caractère à partir de la console. Cependant, dans Go, il n’existe pas d’équivalent direct pour gérer les pressions sur les tabulations. Cela peut être difficile lors du développement d'applications console avec des fonctionnalités de saisie semi-automatique.

Go Equivalent

Une alternative possible dans Go consiste à utiliser bufio.Reader. Voici un exemple :

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]))
}
Copier après la connexion

Bien que bufio.Reader puisse lire un seul caractère, il nécessite que l'utilisateur appuie sur Entrée pour saisir le caractère. Pour détecter une pression sur une tabulation, cela ne convient pas.

Considérations supplémentaires

Pour ce besoin spécifique, getchar() de C n'est pas approprié car il attend que l'utilisateur appuie sur Entrée. Au lieu de cela, les options alternatives incluent :

  • Utiliser les liaisons ncurses/readline (par exemple, goncurses)
  • Développer votre propre gestionnaire d'entrée
  • Exécuter des commandes externes (par exemple, stty) en utilisant os.Exec

Références :

  • [Discussion des groupes Google sur getchar()](https://groups.google.com/forum /?fromgroups=#!topic/golang-nuts/zhBE5MH4n-Q)
  • [Utilisation bufio.Reader](https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/S9AO_kHktiY)
  • [Pack ReadLine](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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal