📅  最后修改于: 2023-12-03 14:41:33.321000             🧑  作者: Mango
当编写基于命令行的Golang程序时,对于从标准输入接收用户输入,我们通常选择使用 fmt.Scanln
函数。fmt.Scanln
函数可以读取用户输入直到遇到换行符,并将输入值以空格分隔符分解为多个字符串。
但是,有时我们需要读取一整行输入,而不是只读取第一部分,这时我们可以使用 bufio.ReadString()
函数。该函数可以读取一行文本数据,因此,即使输入中包含空格,数据也可以完整地读取。
下面是如何使用bufio.ReadString()
函数进行整行读取:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
fmt.Println("Please enter your name:")
reader := bufio.NewReader(os.Stdin)
name, err := reader.ReadString('\n')
if err != nil {
fmt.Println(err)
} else {
fmt.Println("Hello, " + name)
}
}
请注意,bufio.ReadString()
函数需要一个参数作为分隔符,在这里使用了换行符。 您还可以更改分隔符以读取其他类型的输入。
以上代码可以这样解释:
bufio.Reader
。bufio.ReadString()
函数来读取整行输入,并检查是否出现任何错误。Hello
语句。