📅  最后修改于: 2023-12-03 15:15:22.568000             🧑  作者: Mango
fmt.Scanf()
是 Go 语言中 fmt
包下提供的一个读取用户输入的函数,类似于 C 语言中的 scanf()
。该函数可以读取标准输入(键盘输入)或其他实现了 io.Reader
接口的输入源(例如文件)。
func Scanf(format string, a ...interface{}) (n int, err error)
format
:格式化字符串,用于指定待读取数据的格式,具体格式与 C 标准库中的 scanf()
函数相同。a...
:一个参数列表,用于指定待读取数据的存储变量。下面是一个简单的示例程序,该程序读取用户输入的姓名和年龄,然后打印出来:
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("请输入您的姓名和年龄:")
fmt.Scanf("%s%d", &name, &age)
fmt.Printf("您好,%s,您今年 %d 岁了。", name, age)
}
在这个示例程序中,我们首先定义了两个变量 name
和 age
,然后通过 fmt.Scanf()
函数读取用户的输入。读取的格式为 %s
和 %d
,分别表示读取一个字符串和一个整数,最后将读取到的值赋值给指定的变量 &name
和 &age
。
如果您使用 Go Playground 运行该程序,会看到以下输出:
请输入您的姓名和年龄:John 20
您好,John,您今年 20 岁了。
fmt.Scanf()
函数在读取时,会忽略空格、换行符等分隔符。fmt.Scan()
函数来读取一个单独的值,而不是一组值。fmt.Scanf()
函数的返回值 n
表示成功读取的变量个数,如果出现错误则返回 error
类型的错误信息。如果读取不到数据,则函数会阻塞等待输入。