Bruce Blog Bruce Blog
首页
  • CentOS
  • Ubuntu-Debian
  • 系统网络
  • 系统辅助工具
  • MySQL
  • Redis
  • Mongodb
  • Docker基础
  • Container基础
  • Kubernetes

    • Kubernetes基础
    • Kubernetes辅助
  • Container-Network
  • Jenkins
  • Gitlab
  • ArgoCD
  • Ansible
  • Terraform
  • AWS
  • MQ
  • NGINX
  • JumpServer
  • 基础
  • 函数模块
  • 框架
  • 基础

    • Golang环境
    • 语法
    • 数据类型与运算符
    • 分支语句
    • 循环语句
    • 数组
    • 切片
    • Map
    • String
    • 函数
    • 包的管理
    • 指针
    • 结构体
    • Go语言中的OOP
    • 方法和接口
    • 错误处理
  • Go进阶

    • Go进阶
  • Go框架

    • Go框架
  • Golang辅助

    • Golang辅助
  • CSS
  • HTML
  • JavaScript
  • 前端辅助
  • 常用命令
  • 性能监控工具
  • Windows下Docker使用
  • 日常学习
  • 其他导航

Bruce Tao

运维界的该溜子
首页
  • CentOS
  • Ubuntu-Debian
  • 系统网络
  • 系统辅助工具
  • MySQL
  • Redis
  • Mongodb
  • Docker基础
  • Container基础
  • Kubernetes

    • Kubernetes基础
    • Kubernetes辅助
  • Container-Network
  • Jenkins
  • Gitlab
  • ArgoCD
  • Ansible
  • Terraform
  • AWS
  • MQ
  • NGINX
  • JumpServer
  • 基础
  • 函数模块
  • 框架
  • 基础

    • Golang环境
    • 语法
    • 数据类型与运算符
    • 分支语句
    • 循环语句
    • 数组
    • 切片
    • Map
    • String
    • 函数
    • 包的管理
    • 指针
    • 结构体
    • Go语言中的OOP
    • 方法和接口
    • 错误处理
  • Go进阶

    • Go进阶
  • Go框架

    • Go框架
  • Golang辅助

    • Golang辅助
  • CSS
  • HTML
  • JavaScript
  • 前端辅助
  • 常用命令
  • 性能监控工具
  • Windows下Docker使用
  • 日常学习
  • 其他导航
  • 基础

    • Golang环境

    • 语法

    • 数据类型与运算符

      • 数据类型与运算符
      • 基本数据类型
      • string类型及字符编码
      • 基本数据类型之间的转换
      • 运算符
      • 键盘输入和打印输出
      • 分支语句

      • 循环语句

      • 数组

      • 切片

      • Map

      • String

      • 函数

      • 包的管理

      • 指针

      • 结构体

      • Go语言中的OOP

      • 方法和接口

      • 错误处理

    • Go进阶

    • Go框架

    • Golang辅助

    • Golang
    • 基础
    • 数据类型与运算符
    Bruce
    2022-10-27
    目录

    键盘输入和打印输出

    # 一、打印输出

    # 1.1 fmt包

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

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

    image-20220814152034946

    # 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

    运行结果:

    image-20220814152137782

    # 二、键盘输入

    # 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

    运行结果:

    image-20221022125829724

    # 2.2 bufio包读取

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

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

    先创建Reader对象:

    image-20220814152216054

    然后就可以各种读取了:

    image-20220814152253315

    示例代码:

    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

    运行效果:

    image-20220814152331675

    # 三、代码demo

    package main
    
    import (
    	"bufio"
    	"fmt"
    	"os"
    )
    
    func main() {
    	/*
    		输入和输出:
    			fmt包: 输入,输出
    			输出:
    				Print()
    				Printf()
    				Println()
    
    			格式化打印占位符:
    				%v: 原样输出
    				%T: 打印类型
    				%t: bool类型
    				%s: 字符串
    				%f: 浮点
    				%d: 10进制证书
    				%b: 二进制整数
    				%o: 8进制
    				%x ,%X: 16进制
    					%x: 0-9,a-f
    					%X: 0-9,A-F
    				%c: 打印字符
    				%p: 打印地址
    				....
    
    			输入:
    				Scanln()
    
    			Bufio包:
    				主要是用来操作文件读写
    	*/
    	a := 100
    	b := 3.14
    	c := true
    	d := "Hello World"
    	e := `Ruby`
    	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)
    
    	fmt.Println("---------------------------------------------------")
    	/*	var x int
    		var y float64
    		fmt.Println("请输入一个整数,一个浮点类型: ")
    		fmt.Scanln(&x, &y) // 阻塞式子
    		fmt.Printf("a的数值: %d,b的数值: %f\n", x, y)
    
    		fmt.Scanf("%d,%f\n", x, y)
    		fmt.Printf("x:%d,,y:%f\n", x, y)*/
    
    	fmt.Println("请输入一个字符串")
    	reader := bufio.NewReader(os.Stdout)
    	s1, _ := reader.ReadString('\n')
    	fmt.Println("督导的数据: ", s1)
    }
    
    
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    上次更新: 2024/04/09, 16:48:42
    运算符
    分支语句

    ← 运算符 分支语句→

    最近更新
    01
    AWS NAT-NetWork-Firwalld配置(一)
    04-09
    02
    AWS NAT-NetWork-Firwalld配置(二)
    04-09
    03
    kubernetes部署minio对象存储
    01-18
    更多文章>
    Theme by Vdoing | Copyright © 2019-2024 Bruce Tao Blog Space | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式