GO语言基础–数据输入的常用方式
go语言的fmt包带有输入输出数据的函数,常用的数据输入函数有Scanf、Scanln、Scan
主要的格式占位符:
%v | %d | %f | %t | %c | %s | %T | %o | %x和%X | %e和%E |
---|---|---|---|---|---|---|---|---|---|
按数据原格式 | 十进制整形 | 单精度浮点型(float32) | 布尔型 | 字符型 | 字符串型 | 变量的数据类型 | 八进制 | 十六进制,前者的字母用小写表示,后者用大写 | 都为科学计数法 |
1.Scanf
这个函数跟c语言中的scanf一样,用于格式化输入,需要用到格式占位符
package main
import"fmt"
func main() {
var a int
var b float64
var str string
var c bool
var d byte
fmt.Println("请输入")
//注意:%s用于输入字符串时,读取到空格会直接结束,所以不能直接用来输入带空格的字符串
fmt.Scanf("%d %f %s %t %c", &a, &b, &str, &c, &d) //输入一行,用空格隔开
fmt.Printf("%d %f %s %t %c", a, b, str, c, d)
}
运行结果:
2.Scanln
这个函数输入时是一行一行地读取数据,用多个Scanln函数输入数据时要分多行
package main
import"fmt"
func main() {
var a int
var b float64
var str string
var c bool
fmt.Println("请输入")
fmt.Scanln(&a)
fmt.Scanln(&b)
fmt.Scanln(&str)
fmt.Scanln(&c)
//上面的输入也可以改成fmt.Scanln(&a,&b,&str,&c),只不过输入的时候所有数据要输在同一行,以空格隔开
fmt.Printf("%d %f %s %t", a, b, str, c)
}
运行结果:
//
3.Scan
这个函数跟Scanln类似
package main
import"fmt"
func main() {
var a int
var b float64
var str string
var c bool
fmt.Println("请输入")
fmt.Scan(&a,&b,&str,&c)
fmt.Printf("%d %f %s %t", a, b, str, c)
}
输出: