Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erfasst man die Eingabe „30 Monate“ mit fmt.Scanln?

Wie erfasst man die Eingabe „30 Monate“ mit fmt.Scanln?

Linda Hamilton
Linda HamiltonOriginal
2024-11-04 09:43:01133Durchsuche

How to Capture

Auflösen des Eingabeabrufs „30 Monate“ mit fmt.Scanln

Im Originalcode stellte die Verwendung von fmt.Scanln beim Versuch eine Herausforderung dar um „30 des Monats“ als Eingabe abzurufen. Die Funktion liest durch Leerzeichen getrennte Token, was zum Abrufen von „30“ ohne das beabsichtigte „des Monats“ führt.

Lösungen:

  1. Verwendung mehrerer Variablen zum Scannen: Durch Zuweisen mehrerer Variablen als Argumente zu fmt.Scanln kann jedes Token separat erfasst werden, wodurch Leerzeichen zwischen Wörtern erhalten bleiben.
<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. Einsatz von bufio.Scanner für die detaillierte Eingabeanalyse:
    Der bufio.Scanner bietet einen detaillierteren Ansatz für die Eingabeverarbeitung. Durch wiederholtes Aufrufen von scanner.Scan() wird jede Eingabezeile durchlaufen und als Zeichenfolge erfasst.
<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>

Das obige ist der detaillierte Inhalt vonWie erfasst man die Eingabe „30 Monate“ mit fmt.Scanln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn