scan、scanf、scanln在输入时,都会以空格作为一个字符串的结束

在C和C++中我们直接可以调用自带库函数来实现,比如C可以使用gets()函数、C++可以使用getLine()函数。但是在go中需要引入第三方库来完成对带有空格的字符串的接受。

bufio库

使用bufio包里带缓冲的Reader实现带空格字符串的输入,实例代码如下:

package main
 
import (
	"bufio"
	"fmt"
	"os"
)
 
func main() {
	reader := bufio.NewReader(os.Stdin)

	res, _, err := reader.ReadLine()

	if nil != err {
		fmt.Println("reader.ReadLine() error:", err)
	}

	fmt.Println(string(res))
}