使用Fmt.Scanln 從字串中讀取空格分隔的字串
Scanln 函數是fmt 套件的一部分,可以讀取從字串輸入。然而,使用 Scanln 時遇到的一個常見問題是,當需要多個空格分隔的單字時,只取得第一個字。
在提供的範例中:
<code class="go">package main import "fmt" func main() { var s string fmt.Scanln(&s) fmt.Println(s) return }</code>
使用輸入來執行此程式碼時“31 of Month”,它會輸出“31”,而不是預期的“31 of Month”。這是因為 Scanln 將輸入視為單一標記,忽略空格。
要解決此問題,您可以使用以下解決方案:
1.同時掃描多個變數
fmt Scanln 接受多個參數,允許您同時讀取多個單字。
<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>
此程式碼將正確輸出「31」和「月份」。
2。使用 Bufio Scanner
bufio 套件簡化了從各種來源(包括字串)讀取輸入的過程。
<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>
使用此程式碼,您可以讀取並列印每一行單獨。
以上是如何使用 Fmt.Scanln 從字串中讀取空格分隔的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!