如何在Go控制台应用程序中从标准输入(stdin)读取数据?
大家好!我刚开始学习Go,正在编写一个简单的控制台工具。我需要程序询问用户的姓名和年龄,然后输出问候语。但我一直搞不清楚如何正确读取用户在终端输入的字符串。
我尝试过使用`fmt.Scan()`,但它似乎只读取到第一个空格。如果我输入“伊万·彼得罗夫”,它只读取到“伊万”。但如果我需要读取包含空格的整个字符串呢?或者数字?
以下是我当前无法正常工作的代码:
```go
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("请输入姓名:")
fmt.Scan(&name) // 问题:只读取到空格
fmt.Print("请输入年龄:")
fmt.Scan(&age)
fmt.Printf("你好,%s!你%d岁。\n", name, age)
}
```
如果我输入“安娜 25”,程序会立即结束,不等待第二次输入,并输出一些奇怪的内容。如何正确读取字符串呢?