2 回答

TA贡献1799条经验 获得超6个赞
Scan 系列函数扫描空格分隔的标记。
如果您阅读fmt文档,就会很明显为什么您只会得到输入的第一个单词。
Scan 扫描从标准输入读取的文本,将连续的空格分隔值存储到连续的参数中。换行符算作空格。它返回成功扫描的项目数。如果这小于参数的数量,则 err 将报告原因。
bufio.Scan 是你需要的。
// read standard input as a set of lines.
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
fmt.Println(scanner.Text()) // Println will add back the final '\n'
}
if err := scanner.Err(); err != nil {
fmt.Fprintln(os.Stderr, "reading standard input:", err)
}

TA贡献1786条经验 获得超13个赞
要阅读整行,您可以使用bufio包:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
r := bufio.NewReader(os.Stdin)
str, _ := r.ReadString('\n')
fmt.Println(str)
}
- 2 回答
- 0 关注
- 164 浏览
添加回答
举报