鍵盤輸入和打印輸出
一、打印輸出
1.1 fmt包
fmt包實現了類似C語言printf和scanf的格式化I/O。格式化verb('verb')源自C語言但更簡單。
詳見官網fmt的API:https://golang.google.cn/pkg/fmt/
1.2 導入包
import "fmt"
1.3 常用打印函數
打印:
func Print(a ...interface{}) (n int, err error)
格式化打印:
func Printf(format string, a ...interface{}) (n int, err error)
打印后換行
func Println(a ...interface{}) (n int, err error)
格式化打印中的常用占位符:
格式化打印占位符:
%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 := 100 //int
b := 3.14 //float64
c := true // bool
d := "Hello World" //string
e := `Ruby` //string
f := 'A'
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)
}
運行結果:
二、鍵盤輸入
2.1 fmt包讀取鍵盤輸入
常用方法:
func Scan(a ...interface{}) (n int, err error)
func Scanf(format string, a ...interface{}) (n int, err error)
func Scanln(a ...interface{}) (n int, err error)
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)
}
運行結果:
2.2 bufio包讀取
https://golang.google.cn/pkg/bufio/
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)
}
運行效果:
文章中的源代碼: