从 Go 中的 stdin 扫描空格

Ant*_*unt 2 go

我正在尝试使用标准的“fmt”包从 stdin 扫描一些命令

然而,似乎 scanf 在第一个空格后停止。知道我该如何解决吗?

   var in string
   for err != nil {
        _, err = fmt.Scanf("%s", &in)
    }
   fmt.Println(in)
Run Code Online (Sandbox Code Playgroud)

Ant*_*unt 5

我发现我需要的是bufio.Scan

scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        return scanner.Text()
    }
    if err := scanner.Err(); err != nil {
        fmt.Fprintln(os.Stderr, "reading standard input:", err)
    }
Run Code Online (Sandbox Code Playgroud)