📅  最后修改于: 2023-12-03 14:41:33.865000             🧑  作者: Mango
fmt.Fscanf()
函数是Golang中用于从标准输入(os.Stdin)、文件或者字符串中读取数据的函数之一。它的功能类似于C语言中的fscanf()
函数。在本文中,我们将会介绍fmt.Fscanf()
函数的用法以及一些示例的应用。
以下是fmt.Fscanf()
函数的原型:
func Fscanf(r io.Reader, format string, a ...interface{}) (n int, err error)
r
参数为可读取的输入源,一般为标准输入、文件或者字符串。format
参数为格式化字符串,其中的格式占位符与fmt.Printf()
函数相同。a ...interface{}
参数为接收的变量指针,可以写入不同类型的变量。该函数会读取输入源,将读到的数据根据格式化字符串format
进行解析,并将解析结果存储到变量的内存位置中。
以下是fmt.Fscanf()
函数的示例:
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("请输入你的姓名和年龄:")
fmt.Fscanf(os.Stdin, "%s %d", &name, &age)
fmt.Printf("你的姓名是 %s,年龄为 %d 岁", name, age)
}
以上代码会提示用户输入自己的姓名和年龄,然后使用fmt.Fscanf()
函数从标准输入中读取并解析这些数据,最后输出解析结果。
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Open("data.txt")
if err != nil {
panic(err)
}
defer file.Close()
var name string
var age int
fmt.Fscanf(file, "%s %d", &name, &age)
fmt.Printf("姓名:%s,年龄:%d", name, age)
}
以上代码会从文件data.txt
中读取一行数据,其中包含一个字符串和一个整数。使用fmt.Fscanf()
函数对这行数据进行解析,并将解析结果存储在变量中,最后输出解析结果。
package main
import "fmt"
func main() {
str := "123.45 678.90"
var num1 float64
var num2 float64
fmt.Fscanf(strings.NewReader(str), "%f %f", &num1, &num2)
fmt.Printf("num1 = %.2f, num2 = %.2f", num1, num2)
}
以上代码会从字符串中读取两个浮点数,使用fmt.Fscanf()
函数对这些数据进行解析,并将解析结果存储在变量中,最后输出解析结果。
在本文中,我们介绍了fmt.Fscanf()
函数的用法,并提供了一些使用示例。作为Golang内置的标准库函数之一,fmt.Fscanf()
函数在日常的数据读取处理中非常有用。希望本文能对你有所帮助。