Maison > développement back-end > Golang > Comment lire des chaînes séparées par des espaces à partir d'une chaîne à l'aide de Fmt.Scanln ?

Comment lire des chaînes séparées par des espaces à partir d'une chaîne à l'aide de Fmt.Scanln ?

Susan Sarandon
Libérer: 2024-11-04 00:04:03
original
453 Les gens l'ont consulté

How to Read Space-Separated Strings from a String Using Fmt.Scanln?

Lecture de chaînes séparées par des espaces à partir d'une chaîne à l'aide de Fmt.Scanln

La fonction Scanln, qui fait partie du package fmt, permet la lecture de entrée à partir d’une chaîne. Cependant, un problème courant rencontré lors de l'utilisation de Scanln est l'obtention uniquement du premier mot lorsque l'on attend plusieurs mots séparés par des espaces.

Dans l'exemple fourni :

<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

Lors de l'exécution de ce code avec l'entrée "31 du mois", il affiche "31" au lieu du "31 du mois" attendu. En effet, Scanln traite l'entrée comme un jeton unique, ignorant les espaces.

Pour résoudre ce problème, vous pouvez utiliser les solutions suivantes :

1. Scanner plusieurs variables simultanément

fmt Scanln accepte plusieurs arguments, vous permettant de lire plusieurs mots simultanément.

<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

Ce code affichera correctement "31" et "du mois".

2. Utilisez Bufio Scanner

Le package bufio simplifie le processus de lecture des entrées provenant de diverses sources, y compris les chaînes.

<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

Avec ce code, vous pouvez lire et imprimer chaque ligne individuellement.

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