使用Go語言解決Scan空格結束輸入問題

問題

Go語言的輸入Scan,無論是Scanf,還是Scanln還是其他,都是以空格結束輸入的。

但是我們輸入可能是帶空格的。
比如 Fan One 666

Scan

var msg string
_,_ =fmt.Scan(&msg)
fmt.Printf(msg)

在這裡插入圖片描述

Scanf

var msg string
_,_ =fmt.Scanf("%s",&msg)
fmt.Printf(msg)

在這裡插入圖片描述

Scanln

var msg string
_,_ =fmt.Scanln(&msg)
fmt.Printf(msg)

在這裡插入圖片描述

可以看出三個都是這樣,空格就結束瞭輸入

解決

那我們就不能用Scan瞭,轉用bufio的標準輸入輸出格式

var msg string
reader := bufio.NewReader(os.Stdin) // 標準輸入輸出
msg,_ = reader.ReadString('\n')  // 回車結束
msg = strings.TrimSpace(msg)    // 去除最後一個空格
fmt.Printf(msg)

在這裡插入圖片描述

問題解決瞭。

以上就是使用Go語言解決Scan空格結束輸入問題的詳細內容,更多關於Go解決Scan空格結束輸入問題的資料請關註WalkonNet其它相關文章!

推薦閱讀: