golang_fmt包中Scanf和Sscanf的

 

func Scanf

func Scanf(format string, a ...interface{}) (n int, err error)

 

Scanf从标准输入扫描文本,根据format 参数指定的格式将成功读取的空白分隔的值保存进成功传递给本函数的参数。返回成功扫描的条目个数和遇到的任何错误。

demo

package main

import "fmt"

func main() {
	var name string
	fmt.Printf("请输入内容:")
	fmt.Scan(&name)
	fmt.Println("name:", name)

	fmt.Printf("请输入内容2:")
	fmt.Scanf("%s", &name)
	fmt.Println("name:", name)
}

 

 

output:

请输入内容:2345
name: 2345
请输入内容2:1234
name: 1234

func Sscanf

func Sscanf(str string, format string, a ...interface{}) (n int, err error)

 

Sscanf从字符串str扫描文本,根据format 参数指定的格式将成功读取的空白分隔的值保存进成功传递给本函数的参数。返回成功扫描的条目个数和遇到的任何错误。

demo

package main

import "fmt"

func main() {
	s, t := "test123", ""
	fmt.Sscan(s, &t)
	fmt.Println("s:", s)
	fmt.Println("t:", t)	// t: test123 将s的内容传给t

	fmt.Sscanln(s, &t)
	fmt.Println("s:", s)
	fmt.Println("t:", t)	// t: test123 将s的内容传给t

	_, err := fmt.Sscanf(s, "test%s", &t)
	fmt.Println("err:", err)
	fmt.Println("s:", s)	// s: test123
	fmt.Println("t:", t)	// t: 123 将t从s中去掉“test”后提取出来
}
posted @ 2021-12-23 13:46  技术颜良  阅读(176)  评论(0编辑  收藏  举报