GO 键盘输入和打印输出

键盘输入和打印输出

一、打印输出

1.1 fmt包

fmt包实现了类似C语言printf和scanf的格式化I/O。格式化verb('verb')源自C语言但更简单。

详见官网fmt的API:https://golang.google.cn/pkg/fmt/

fmtpackage

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
", a, a)
    fmt.Printf("%T,%f
", b, b)
    fmt.Printf("%T,%t
", c, c)
    fmt.Printf("%T,%s
", d, d)
    fmt.Printf("%T,%s
", e, e)
    fmt.Printf("%T,%d,%c
", f, f, f)
    fmt.Println("-----------------------")
    fmt.Printf("%v
", a)
    fmt.Printf("%v
", b)
    fmt.Printf("%v
", c)
    fmt.Printf("%v
", d)
    fmt.Printf("%v
", e)
    fmt.Printf("%v
", f)
 
}
 

运行结果:

yunxing1

二、键盘输入

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
",x,y)
 
    fmt.Scanf("%d,%f",&x,&y)
    fmt.Printf("x:%d,y:%f
",x,y)
}

运行结果:

yunxing2

2.2 bufio包读取

https://golang.google.cn/pkg/bufio/

bufio包中都是IO操作的方法:

先创建Reader对象:

bufio1

然后就可以各种读取了:

bufio2

示例代码:

package main
 
import (
    "fmt"
    "os"
    "bufio"
)
 
func main() {
    fmt.Println("请输入一个字符串:")
    reader := bufio.NewReader(os.Stdin)
    s1, _ := reader.ReadString('
')
    fmt.Println("读到的数据:", s1)
 
}

运行效果:

yunxing3

文章中的源代码:

https://github.com/rubyhan1314/go_foundation

原文地址:https://www.cnblogs.com/puqunzhu/p/11700717.html