注意:如果需要输入字符,将字符按照字符串处理,否则会无法获得正确的字符
- fmt.Sprintf(“%[2]d %[1]d\n”, 11, 22)
Scan()、Scanln()、Scanf()与Print()、Println()、Printf()
- 数据输入或输出:标准输入(键盘)与标准输出(控制台)
- Scan():根据空格或换行分隔数据
- Scanln():根据换行分隔数据
- Scanf():根据指定格式读取数据
- Print():向控制台输出数据
- Println():会在输出数据后增加换行
- Printf():按照指定格式输出数据
package main
import "fmt"
func main() {
var name string
var age int
fmt.Scan(&name,&age) //Tom 15\n(后要有换行,否则无法确定数据是否结束)
fmt.Scanf("%s %d",&name,&age) //Tom 15\n(后要有换行,否则无法确定数据是否结束)
fmt.Scanln(&name,&age) //Tom\n15\n
fmt.Print(name,age) //输出结果:Tom 15
fmt.Println(name,age) //输出结果:Tom 15\n
fmt.Printf("%s %d"name,age) //输出结果:Tom 15
}
Sscan()、Sscanln()、Sscanf()与Sprint()、Sprintln()、Sprintf()
- 数据输入或输出:均为字符串
- Sscan():根据空格或换行分隔字符串
- Sscanln():根据空格分隔字符串,遇到换行停止扫描,且结尾必须有换行或EOF
- Sscanf():根据指定格式扫描字符串
- Sprint():将数据拼接成字符串,如果数据之间都不是字符串,则在数据之间添加一个空格
- Sprintln():将数据拼接成字符串,数据之间添加空格,末尾添加换行
- Sprintf():根据指定格式拼接成字符串
package main
import "fmt"
func main() {
var name,str string
var age int
fmt.Sscan("Bob 12",&name,&age)
fmt.Sscanln("Bob 12",&name,&age)
fmt.Sscanf("Bob 12","%s %d",&name,&age) //name=Bob age=12
str = fmt.Sprint(name,age) //str="Bob12"
str = fmt.Sprint(age,age) //str="12 12"
str = fmt.Sprintln(name,age) //str="Bob 12\n"
str = fmt.Sprintf("%s is %d years old",name,age) //str="Bob is 12 years old"
fmt.Print(str)
}
占位符介绍
符号 | 含义 |
---|---|
%T | 数据类型 |
%v | 数据值 |
%t | 布尔值(true或false) |
%b | 二进制整数, |
%c | rune类型,字符类型(包括中文字符) |
%s | 字符串类型 |
%U | 字符的Unicode格式,如:U+90ED |
%o | 八进制整数 |
%d | 十进制整数 |
%x %X | 十六进制整数,a-f 或 A-F |
%f | 带小数点的浮点数,如:12.340000 |
%e %E | 科学计数法表示浮点数,如:1.234000E+01 |
%p | 指针,十六进制表示 |