首頁 > 後端開發 > Golang > 如何在 Go 中使用 fmt.Scanln 讀取空格分隔的字串?

如何在 Go 中使用 fmt.Scanln 讀取空格分隔的字串?

Barbara Streisand
發布: 2024-11-03 13:15:03
原創
374 人瀏覽過

How to Read Space-Separated Strings with fmt.Scanln in Go?

使用fmt.Scanln 讀取空格分隔的字串

使用fmt.Scanln() 時,常常會遇到需要的情況文字被截斷。考慮以下範例:

<code class="go">package main

import "fmt"

func main() {
    var s string
    fmt.Scanln(&s)
    fmt.Println(s)
    return
}</code>
登入後複製

輸入“30 of Month”,預期輸出將為“30 of Month”,但結果會被截斷為“30”。這是因為 Scanln 需要換行符號來終止輸入。

解:

要讀取空格分隔的標記,請使用fmt Scan 系列:

<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>
登入後複製

此方法明確指定多個輸入變量,確保正確讀取每個標記。

替代解決方案:bufio.Scan

或者,考慮使用bufio 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>
登入後複製

此方法逐行讀取輸入,為輸入過程提供更大的靈活性和控制。

以上是如何在 Go 中使用 fmt.Scanln 讀取空格分隔的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板