扫码订阅《 Go语言基础》或入驻星球,即可阅读文章!

GOLANG ROADMAP

阅读模式

  • 沉浸
  • 自动
  • 日常
首页
Go学习
  • Go学院

    • Go小课
    • Go小考
    • Go实战
    • 精品课
  • Go宝典

    • 在线宝典
    • B站精选
    • 推荐图书
    • 精品博文
  • Go开源

    • Go仓库
    • Go月刊
  • Go下载

    • 视频资源
    • 文档资源
Go求职
  • 求职服务

    • 内推互助
    • 求职助力
  • 求职刷题

    • 企业题库
    • 面试宝典
    • 求职面经
Go友会
  • 城市
  • 校园
推广返利 🤑
实验区
  • Go周边
消息
更多
  • 用户中心

    • 我的信息
    • 推广返利
  • 玩转星球

    • 星球介绍
    • 角色体系
    • 星主权益
  • 支持与服务

    • 联系星主
    • 成长记录
    • 常见问题
    • 吐槽专区
  • 合作交流

    • 渠道合作
    • 课程入驻
    • 友情链接
author-avatar

GOLANG ROADMAP


首页
Go学习
  • Go学院

    • Go小课
    • Go小考
    • Go实战
    • 精品课
  • Go宝典

    • 在线宝典
    • B站精选
    • 推荐图书
    • 精品博文
  • Go开源

    • Go仓库
    • Go月刊
  • Go下载

    • 视频资源
    • 文档资源
Go求职
  • 求职服务

    • 内推互助
    • 求职助力
  • 求职刷题

    • 企业题库
    • 面试宝典
    • 求职面经
Go友会
  • 城市
  • 校园
推广返利 🤑
实验区
  • Go周边
消息
更多
  • 用户中心

    • 我的信息
    • 推广返利
  • 玩转星球

    • 星球介绍
    • 角色体系
    • 星主权益
  • 支持与服务

    • 联系星主
    • 成长记录
    • 常见问题
    • 吐槽专区
  • 合作交流

    • 渠道合作
    • 课程入驻
    • 友情链接
  • 课程介绍

    • 《Go语言基础》
  • 入门简介

  • 基础语法

    • 第1节:变量的使用
    • 第2节:常量的使用
    • 第3节:基础数据类型
    • 第4节:运算符
    • 第5节:键盘输入和打印输出
  • 流程语句

  • 数组和切片

  • Map

  • string

  • 函数

  • 指针

  • 结构体

  • 方法

  • 接口

  • 错误

扫码订阅《 Go语言基础》或入驻星球,即可阅读文章!

第5节:键盘输入和打印输出


GOLANG ROADMAP

# 一、打印输出

# 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

# 1.3 常用打印函数

打印:

func Print(a …interface{}) (n int, err error) (opens new window)

格式化打印:

func Printf(format string, a …interface{}) (n int, err error) (opens new window)

打印后换行

func Println(a …interface{}) (n int, err error) (opens new window)

格式化打印中的常用占位符:

格式化打印占位符:
            %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,打印地址
            。。。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

示例代码:

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)

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

运行结果:

# 二、键盘输入

# 2.1 fmt包读取键盘输入

常用方法:

func Scan(a …interface{}) (n int, err error) (opens new window)

func Scanf(format string, a …interface{}) (n int, err error) (opens new window)

func Scanln(a …interface{}) (n int, err error) (opens new window)

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)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

运行结果:

# 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)

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

运行效果:

  • 一、打印输出
  • 1.1 fmt包
  • 1.2 导入包
  • 1.3 常用打印函数
  • 二、键盘输入
  • 2.1 fmt包读取键盘输入
  • 2.2 bufio包读取