Maison >développement back-end >Golang >Comment capturer l'entrée « 30 du mois » avec fmt.Scanln ?

Comment capturer l'entrée « 30 du mois » avec fmt.Scanln ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-04 09:43:01197parcourir

How to Capture

Résolution de la récupération d'entrée "30 du mois" avec fmt.Scanln

Dans le code d'origine, l'utilisation de fmt.Scanln posait un défi lors de la tentative pour récupérer "30 du mois" en entrée. La fonction lit les jetons séparés par des espaces, ce qui entraîne la récupération de « 30 » sans le « du mois » prévu.

Solutions :

  1. Utilisation de plusieurs variables pour l'analyse : En attribuant plusieurs variables comme arguments à fmt.Scanln, chaque jeton peut être capturé séparément, permettant ainsi de préserver les espaces entre les mots.
<code class="go">var s1 string
var s2 string
fmt.Scanln(&s1, &s2)
fmt.Println(s1) // Prints "30"
fmt.Println(s2) // Prints "of month"</code>
  1. Utilisation de bufio.Scanner pour une analyse détaillée des entrées :
    Le bufio.Scanner offre une approche plus granulaire de la gestion des entrées. En appelant à plusieurs reprises scanner.Scan(), il parcourt chaque ligne d'entrée, la capturant sous forme de chaîne.
<code class="go">scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
    s := scanner.Text()
    fmt.Println(s) // Prints "30 of month"
}
if err := scanner.Err(); err != nil {
    os.Exit(1)
}</code>

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