首頁 >後端開發 >Golang >如何使用 fmt.Scanln 擷取「30 月」輸入?

如何使用 fmt.Scanln 擷取「30 月」輸入?

Linda Hamilton
Linda Hamilton原創
2024-11-04 09:43:01244瀏覽

How to Capture

使用fmt.Scanln 解決「30 個月」輸入檢索

在原始程式碼中,嘗試使用fmt.Scanln 時遇到了挑戰檢索“30 of Month”作為輸入。此函數讀取以空格分隔的標記,導致檢索到“30”,而沒有預期的“月份”。

解決方案:

  1. 使用多個變數進行掃描:透過將多個變數作為參數分配給fmt.Scanln,可以單獨捕獲每個標記,從而允許保留單字之間的空格。
<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. 使用 bufio.Scanner 進行詳細的輸入解析:
    bufio.Scanner 提供了更精細的輸入處理方法。透過重複呼叫scanner.Scan(),它會迭代每一行輸入,將其捕獲為字串。
<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>

以上是如何使用 fmt.Scanln 擷取「30 月」輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn