
本文介绍了在 Go 语言中从标准输入读取整数的几种方法,重点讲解了 fmt.Scanf 函数的使用,并提供了简洁易懂的代码示例,帮助开发者快速掌握从命令行获取整数输入的方法。
Go 语言提供了多种方法从标准输入读取整数。最常用的方法之一是使用 fmt.Scanf 函数。fmt.Scanf 函数允许你根据指定的格式字符串从标准输入解析数据。
使用 fmt.Scanf 读取整数
fmt.Scanf 函数的第一个参数是格式字符串,用于指定要读取的数据类型。对于整数,可以使用 %d 格式说明符。第二个参数是指向存储读取值的变量的指针。
以下是一个使用 fmt.Scanf 读取整数的示例:
package main
import "fmt"
func main() {
var i int
_, err := fmt.Scanf("%d", &i)
if err != nil {
fmt.Println("Error reading integer:", err)
return
}
fmt.Println("You entered:", i)
}在这个例子中:
- 我们声明了一个名为 i 的整数变量。
- 我们使用 fmt.Scanf("%d", &i) 从标准输入读取一个整数,并将其存储在 i 变量中。&i 是 i 变量的地址,fmt.Scanf 需要一个指针来修改变量的值。
- 我们检查 err 变量,以查看在读取过程中是否发生任何错误。如果发生错误,我们将打印错误消息并退出程序。
- 如果没有发生错误,我们将打印用户输入的整数。
注意事项
- fmt.Scanf 函数会一直等待用户输入,直到输入与格式字符串匹配的数据或发生错误。
- 如果用户输入的不是整数,fmt.Scanf 函数将返回一个错误。
- fmt.Scanf 函数会忽略前导空格。
其他读取整数的方法
除了 fmt.Scanf,还可以使用其他方法从标准输入读取整数,例如:
- fmt.Scanln:类似于 fmt.Scanf,但会在遇到换行符时停止读取。
- bufio.NewReader 和 strconv.Atoi:使用 bufio.NewReader 从标准输入读取一行文本,然后使用 strconv.Atoi 将文本转换为整数。这种方法更加灵活,可以处理更复杂的输入格式。
总结
fmt.Scanf 函数是 Go 语言中从标准输入读取整数的一种简单而有效的方法。通过使用 %d 格式说明符和指向整数变量的指针,你可以轻松地从命令行获取整数输入。请务必检查错误,以确保程序能够正确处理无效输入。在更复杂的情况下,可以考虑使用 bufio.NewReader 和 strconv.Atoi 来实现更灵活的输入处理。










