Maison > développement back-end > Golang > Pourquoi Scanf échoue-t-il sous Windows et comment puis-je le réparer avec bufio ?

Pourquoi Scanf échoue-t-il sous Windows et comment puis-je le réparer avec bufio ?

Mary-Kate Olsen
Libérer: 2024-11-01 11:12:30
original
533 Les gens l'ont consulté

Why Does Scanf Fail on Windows and How Can I Fix It with bufio?

Résolution des problèmes de Scanf dans Go sous Windows

La fonction Scanf dans Go est connue pour ses complications potentielles, en particulier sur les systèmes Windows. Lors de l'exécution d'un programme qui utilise Scanf deux fois, le problème survient lorsque la deuxième requête d'entrée n'est pas enregistrée, ce qui entraîne la fin abrupte de la fonction.

Pour résoudre ce problème, il est recommandé d'utiliser le package bufio, qui propose un moyen plus convivial de gérer les opérations d’entrée et de sortie. Le code ci-dessous illustre l'alternative bufio :

<code class="go">func credentials() (string, string) {
    reader := bufio.NewReader(os.Stdin) // Initialize a bufio Reader

    fmt.Print("Enter Username: ")
    username, _ := reader.ReadString('\n') // Read the username, discarding any errors

    fmt.Print("Enter Password: ")
    password, _ := reader.ReadString('\n') // Read the password

    return strings.TrimSpace(username), strings.TrimSpace(password) // Remove trailing newline characters
}</code>
Copier après la connexion

La principale différence ici est l'utilisation de bufio.NewReader(), qui permet une gestion des entrées plus structurée. La fonction ReadString() lit les entrées de l'utilisateur jusqu'au caractère délimiteur spécifié ('n' dans ce cas), ce qui permet une récupération plus cohérente des entrées sur différents systèmes d'exploitation.

En utilisant cette approche basée sur bufio, vous pouvez contournez les pièges potentiels de Scanf et assurez une gestion fiable des entrées, que votre programme soit exécuté sur Windows ou Mac.

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