📅  最后修改于: 2023-12-03 15:31:01.437000             🧑  作者: Mango
Golang 中的 fmt.Sscanf() 函数可以将字符串解析为具有给定格式的值。它类似于 fmt.Sprintf() 函数,但是它可以从字符串中提取值,而不是将值格式化为字符串。
func Sscanf(str string, format string, args ...interface{}) (n int, err error)
package main
import (
"fmt"
)
func main() {
var a, b int
var c string
input := "10 20 hello"
num, err := fmt.Sscanf(input, "%d %d %s", &a, &b, &c)
if err != nil {
fmt.Println(err)
}
fmt.Println(num, a, b, c)
}
该程序的输出为:
3 10 20 hello
在这个例子中,我们定义了三个变量:a(一个整数),b(一个整数)和 c(一个字符串),然后定义了一个字符串 input。我们使用 fmt.Sscanf() 函数将字符串 input 解析为具有给定格式的值。在这种情况下,我们将字符串 input 解析为三个变量:a、b 和 c。
我们使用格式字符串 "%d %d %s",其中 %d 表示读取一个整数,%s 表示读取一个字符串。
num, err := fmt.Sscanf(input, "%d %d %s", &a, &b, &c)
在上面的行中,我们使用 fmt.Sscanf() 函数解析字符串 input。我们将输入字符串和格式字符串传递给该函数,并将需要解析的变量的指针作为其参数 args。%d 和 %s 格式符分别指定了要读取的变量的类型。
最后,fmt.Sscanf() 函数返回解析的参数数量 num 和任何错误。在我们的示例中,fmt.Sscanf() 函数解析了三个参数,所以 num 的值为 3。
使用 fmt.Sscanf() 函数可以将输入数据解析为可用的数据类型,在编写具有输入的 Golang 程序时非常有用。