fmt包实现了printf和scanf的格式化I/O.
我们就是通过fmt包下的 printf 和 scanf 来实现打印输出和键盘输入的
import "fmt"
打印
fmt.print
格式化打印
fmt.printf
打印后换行
fmt.println
格式化打印占位符:
%v,原样输出
%T,打印类型
%t,bool类型
%s,字符串
%f,浮点
%d,10进制的整数
%b,2进制的整数
%o,8进制
%x,%X,16进制
%x:0-9,a-f
%X:0-9,A-F
%c,打印字符
%p,打印地址
...
package main
import (
"fmt"
)
func main() {
a := 1 //int
b := 3.1415 //float64
c := true // bool
d := "Hello World" //string
e := `Fate` //string
f := 'D'
fmt.Printf("%T,%b\n", a, a)
fmt.Printf("%T,%f\n", b, b)
fmt.Printf("%T,%t\n", c, c)
fmt.Printf("%T,%s\n", d, d)
fmt.Printf("%T,%s\n", e, e)
fmt.Printf("%T,%d,%c\n", f, f, f)
fmt.Println("-----------------------")
fmt.Printf("%v\n", a)
fmt.Printf("%v\n", b)
fmt.Printf("%v\n", c)
fmt.Printf("%v\n", d)
fmt.Printf("%v\n", e)
fmt.Printf("%v\n", f)
}
运行结果:
int,1
float64,3.141500
bool,true
string,Hello World
string,Fate
int32,68,D
-----------------------
1
3.1415
true
Hello World
Fate
68
常用方法:
func Scan
func Scanf
func Scanln
package main
import (
"fmt"
)
func main() {
var x int
var y float64
fmt.Println("请输入一个整数,一个浮点类型:")
fmt.Scanln(&x,&y)//读取键盘的输入,通过操作地址,赋值给x和y 阻塞式
fmt.Printf("x的数值:%d,y的数值:%f\n",x,y)
fmt.Scanf("%d,%f",&x,&y)
fmt.Printf("x:%d,y:%f\n",x,y)
}
bufio包中都是IO操作的方法:
先创建Reader对象:
package main
import (
"fmt"
"os"
"bufio"
)
func main() {
fmt.Println("请输入一个字符串:")
reader := bufio.NewReader(os.Stdin)
s1, _ := reader.ReadString('\n')
fmt.Println("读到的数据:", s1)
}