Avatar ·

如何在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”,程序会立即结束,不等待第二次输入,并输出一些奇怪的内容。如何正确读取字符串呢?