这应该将整行存储为 v 变量中的字符串,对..?但是当我打印时,我只得到第一个单词,而空格之后的所有内容都没有被捕获。
繁花如伊
浏览 133回答 2
2回答
哈士奇WWW
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)}