使用 fmt.Scanln 解析由空格分隔的字符串
当尝试从用户输入中读取包含多个由空格分隔的单词的字符串时, fmt.Scanln 可能只返回第一个单词。要解决此问题:
了解 fmt.Scanln
fmt.Scanln 的操作与 fmt.Scan 类似,但在遇到换行符时终止扫描。换行符必须跟在最后一项之后,或者必须有 EOF(文件结束)指示符。
使用 Scanln 读取空格分隔的字符串
到成功读取空格分隔的字符串,在 fmt.Scanln 调用中指定多个变量:
<code class="go">var s1 string var s2 string fmt.Scanln(&s1, &s2)</code>
此方法将第一个单词分配给 s1,第二个单词分配给 s2。
替代使用 bufio.Scanner 的方法
另一种选择是使用 bufio.Scanner:
<code class="go">scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { s := scanner.Text() fmt.Println(s) }</code>
这里,扫描器循环遍历标准输入并打印每行输入。
以上是如何在 Go 中从用户输入中读取空格分隔的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!