So analysieren Sie durch Leerzeichen getrennte Zeichenfolgen mit fmt.scanln
fmt.scanln ist eine Funktion, die zum Lesen von Eingaben aus der Standardeingabe und zum Scannen verwendet wird es in strukturierte Variablen. Beim Lesen von durch Leerzeichen getrennten Zeichenfolgen kann es jedoch zu unerwartetem Verhalten kommen.
Standardmäßig stoppt fmt.scanln den Scanvorgang beim ersten Zeilenumbruchzeichen. Dies kann zu Situationen führen, in denen der Benutzer eine Zeichenfolge mit mehreren durch Leerzeichen getrennten Wörtern eingibt, aber nur das erste Wort erfasst wird.
Bedenken Sie beispielsweise den folgenden Code:
<code class="go">package main import "fmt" func main() { var s string fmt.Scanln(&s) fmt.Println(s) return }</code>
Wann Wenn der Benutzer „31 des Monats“ eingibt, wird nur „31“ in der s-Variablen erfasst. Dies liegt daran, dass fmt.scanln den Scanvorgang stoppt, nachdem es auf das Leerzeichen stößt, bei dem es sich um ein Leerzeichen handelt.
Um dieses Problem zu beheben und mehrere durch Leerzeichen getrennte Wörter zu erfassen, können Sie einen der folgenden Schritte ausführen:
Verwenden Sie mehrere fmt.Scanln-Anweisungen:
<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>
Verwenden Sie einen gepufferten Scanner:
<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>
Das obige ist der detaillierte Inhalt vonWie analysiere ich durch Leerzeichen getrennte Zeichenfolgen mit fmt.Scanln in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!