Maison > développement back-end > Golang > Comment lire des chaînes séparées par des espaces avec fmt.Scanln dans Go ?

Comment lire des chaînes séparées par des espaces avec fmt.Scanln dans Go ?

Barbara Streisand
Libérer: 2024-11-03 13:15:03
original
411 Les gens l'ont consulté

How to Read Space-Separated Strings with fmt.Scanln in Go?

Utilisation de fmt.Scanln pour lire des chaînes séparées par des espaces

Lors de l'utilisation de fmt.Scanln(), il est courant de rencontrer des instances lorsque vous le souhaitez le texte est tronqué. Prenons l'exemple suivant :

<code class="go">package main

import "fmt"

func main() {
    var s string
    fmt.Scanln(&s)
    fmt.Println(s)
    return
}</code>
Copier après la connexion

Avec l'entrée « 30 du mois », le résultat attendu serait « 30 du mois », mais à la place, le résultat est tronqué à « 30 ». En effet, Scanln s'attend à ce qu'un caractère de nouvelle ligne termine la saisie.

Solution :

Pour lire les jetons séparés par des espaces, utilisez la famille fmt Scan :

<code class="go">package main

import (
    "fmt"
)

func main() {
    var s1 string
    var s2 string
    fmt.Scanln(&s1, &s2)
    fmt.Println(s1)
    fmt.Println(s2)
    return
}</code>
Copier après la connexion

Cette approche spécifie explicitement plusieurs variables à saisir, garantissant que chaque jeton est correctement read.

Solution alternative : bufio.Scan

Vous pouvez également envisager d'utiliser le scanner bufio :

<code class="go">package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        s := scanner.Text()
        fmt.Println(s)
    }
    if err := scanner.Err(); err != nil {
        os.Exit(1)
    }
}</code>
Copier après la connexion

Cette méthode lit l'entrée ligne par ligne , offrant une plus grande flexibilité et un plus grand contrôle sur le processus de saisie.

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