Golang fmt.Scanf()函数及示例
在Golang中,fmt包是一个非常常用的包,它提供了一系列格式化输入输出的函数。其中,fmt.Scanf()函数可以从标准输入中按照指定格式读取数据。
fmt.Scanf()函数概述
基本语法如下:
func Scanf(format string, a ...interface{}) (n int, err error)
fmt.Scanf()函数的格式化字符串可以包含两类内容:普通字符和格式化占位符。普通字符可以直接包含在格式化字符串中,而格式化占位符则以%开始,用于指定后续参数的格式化方式。
fmt.Scanf()函数的第一个参数format是格式化字符串,后续参数a是指针类型,用于存储读取到的数据。
fmt.Scanf()函数返回值有两个:n表示成功读取的参数个数,err表示读取过程中出现的错误,如果读取成功,则err为nil。
下面,我们来看一些fmt.Scanf()函数的使用示例:
示例1:读取整数
package main
import "fmt"
func main() {
var age int
fmt.Println("请输入你的年龄:")
fmt.Scanf("%d", &age)
fmt.Printf("你的年龄是%d岁\n", age)
}
在上面这个例子中,我们利用fmt.Scanf()函数从标准输入中读取一个整数,存储到age变量中,并通过fmt.Printf()函数将读取到的整数打印输出。注意,在读取整数时,我们使用了%d格式化占位符。
示例2:读取浮点数
package main
import "fmt"
func main() {
var height float32
fmt.Println("请输入你的身高:")
fmt.Scanf("%f", &height)
fmt.Printf("你的身高是%f米\n", height)
}
在上面这个例子中,我们利用fmt.Scanf()函数从标准输入中读取一个浮点数,存储到height变量中,并通过fmt.Printf()函数将读取到的浮点数打印输出。注意,在读取浮点数时,我们使用了%f格式化占位符。
示例3:读取字符串
package main
import "fmt"
func main() {
var name string
fmt.Println("请输入你的名字:")
fmt.Scanf("%s", &name)
fmt.Printf("你的名字是%s\n", name)
}
在上面这个例子中,我们利用fmt.Scanf()函数从标准输入中读取一个字符串,存储到name变量中,并通过fmt.Printf()函数将读取到的字符串打印输出。注意,在读取字符串时,我们使用了%s格式化占位符。
示例4:读取多个值
package main
import "fmt"
func main() {
var name string
var age int
fmt.Println("请输入你的名字和年龄:")
fmt.Scanf("%s %d", &name, &age)
fmt.Printf("你的名字是%s,年龄是%d岁\n", name, age)
}
在上面这个例子中,我们利用fmt.Scanf()函数从标准输入中读取两个值,分别存储到name和age变量中,并通过fmt.Printf()函数将读取到的值打印输出。
示例5:读取多行文字
package main
import "fmt"
func main() {
var content string
fmt.Println("请输入内容,以换行结束:")
fmt.Scanln(&content)
fmt.Println("你输入的内容是:")
fmt.Println(content)
}
在上面这个例子中,我们利用fmt.Scanln()函数从标准输入中读取多行文字,存储到content变量中,并通过fmt.Println()函数将读取到的内容打印输出。
结论
通过本文的学习,相信大家已经掌握了Golang中fmt.Scanf()函数的使用方法和示例,可以灵活地应用于不同场景下的数据读取。需要注意的是,在使用fmt.Scanf()函数时,要确保输入的数据格式和格式化字符串中指定的格式一致,否则读取操作可能会出现异常。