fmt官方文档说明:https://studygolang.com/pkgdoc

import "fmt"

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

Printing 输出部分

verb:

通用:

  1. %v 值的默认格式表示
  2. %+v 类似%v,但输出结构体时会添加字段名
  3. %#v 值的Go语法表示
  4. %T 值的类型的Go语法表示
  5. %% 百分号

布尔值:

  1. %t 单词truefalse

整数:

  1. %b 表示为二进制
  2. %c 该值对应的unicode码值
  3. %d 表示为十进制
  4. %o 表示为八进制
  5. %q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示
  6. %x 表示为十六进制,使用a-f
  7. %X 表示为十六进制,使用A-F
  8. %U 表示为Unicode格式:U+1234,等价于"U+%04X"

浮点数与复数的两个组分:

  1. %b 无小数部分、二进制指数的科学计数法,如-123456p-78;参见strconv.FormatFloat
  2. %e 科学计数法,如-1234.456e+78
  3. %E 科学计数法,如-1234.456E+78
  4. %f 有小数部分但无指数部分,如123.456
  5. %F 等价于%f
  6. %g 根据实际情况采用%e或%f格式(以获得更简洁、准确的输出)
  7. %G 根据实际情况采用%E或%F格式(以获得更简洁、准确的输出)

字符串和[]byte:

  1. %s 直接输出字符串或者[]byte
  2. %q 该值对应的双引号括起来的go语法字符串字面值,必要时会采用安全的转义表示
  3. %x 每个字节用两字符十六进制数表示(使用a-f
  4. %X 每个字节用两字符十六进制数表示(使用A-F

指针:

  1. %p 表示为十六进制,并加上前导的0x

宽度通过一个紧跟在百分号后面的十进制数指定,如果未指定宽度,则表示值时除必需之外不作填充。精度通过(可选的)宽度后跟点号后跟的十进制数指定。如果未指定精度,会使用默认精度;如果点号后没有跟数字,表示精度为0。举例如下:

  1. %f: 默认宽度,默认精度
  2. %9f 宽度9,默认精度
  3. %.2f 默认宽度,精度2
  4. %9.2f 宽度9,精度2
  5. %9.f 宽度9,精度0

func Print

  1. func Print(a ...interface{}) (n int, err error)

Print采用默认格式将其参数格式化并写入标准输出。如果两个相邻的参数都不是字符串,会在它们的输出之间添加空格。返回写入的字节数和遇到的任何错误。

func Fprint

  1. func Fprint(w io.Writer, a ...interface{}) (n int, err error)

Fprint采用默认格式将其参数格式化并写入w,对Print的扩展。如果两个相邻的参数都不是字符串,会在它们的输出之间添加空格。返回写入的字节数和遇到的任何错误。

func Sprint

  1. func Sprint(a ...interface{}) string

Sprint采用默认格式将其参数格式化,串联所有输出生成并返回一个字符串。如果两个相邻的参数都不是字符串,会在它们的输出之间添加空格。

func Println

  1. func Println(a ...interface{}) (n int, err error)

Println采用默认格式将其参数格式化并写入标准输出。总是会在相邻参数的输出之间添加空格并在输出结束后添加换行符。返回写入的字节数和遇到的任何错误。

func Fprintln

  1. func Fprintln(w io.Writer, a ...interface{}) (n int, err error)

Fprintln采用默认格式将其参数格式化并写入w。总是会在相邻参数的输出之间添加空格并在输出结束后添加换行符。返回写入的字节数和遇到的任何错误。

func Sprintln

  1. func Sprintln(a ...interface{}) string

Sprintln采用默认格式将其参数格式化,串联所有输出生成并返回一个字符串。总是会在相邻参数的输出之间添加空格并在输出结束后添加换行符。

func Printf

  1. func Printf(format string, a ...interface{}) (n int, err error)

Printf根据format参数生成格式化的字符串并写入标准输出。返回写入的字节数和遇到的任何错误。

即:接收一个可格式化string,然后输出到标准输出中。

func Fprintf

  1. func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)

Fprintf根据format参数生成格式化的字符串并写入w,可以理解为对Printf的扩展,写入到指定的目的地。返回写入的字节数和遇到的任何错误。

func Sprintf 

  1. func Sprintf(format string, a ...interface{}) string

Sprintf根据format参数生成格式化的字符串并返回该字符串。

func Errorf 

  1. func Errorf(format string, a ...interface{}) error

Errorf根据format参数生成格式化字符串并返回一个包含该字符串的错误。

获取输入

  1. // Scan 从标准输入中读取数据,并将数据用空白分割并解析后存入 a 提供
  2. // 的变量中(换行符会被当作空白处理),变量必须以指针传入。
  3. // 当读到 EOF 或所有变量都填写完毕则停止扫描。
  4. // 返回成功解析的参数数量。
  1. func Scan(a ...interface{}) (n int, err error)
  2.  
  3. // Scanln 和 Scan 类似,只不过遇到换行符就停止扫描。
  4. func Scanln(a ...interface{}) (n int, err error)
  5.  
  6. // Scanf 从标准输入中读取数据,并根据格式字符串 format 对数据进行解析,
  7. // 将解析结果存入参数 a 所提供的变量中,变量必须以指针传入。
  8. // 输入端的换行符必须和 format 中的换行符相对应(如果格式字符串中有换行
  9. // 符,则输入端必须输入相应的换行符)。
  10. // 占位符 %c 总是匹配下一个字符,包括空白,比如空格符、制表符、换行符。
  11. // 返回成功解析的参数数量。
  12. func Scanf(format string, a ...interface{}) (n int, err error)
  1. // 对于 Scan 而言,回车视为空白
  2. func main() {
  3. a, b, c := "", , false
  4. fmt.Scan(&a, &b, &c)
  5. fmt.Println(a, b, c)
  6. // 在终端执行后,输入 abc 1 回车 true 回车
  7. // 结果 abc 1 true
  8. }
  9.  
  10. // 对于 Scanln 而言,回车结束扫描
  11. func main() {
  12. a, b, c := "", , false
  13. fmt.Scanln(&a, &b, &c)
  14. fmt.Println(a, b, c)
  15. // 在终端执行后,输入 abc 1 true 回车
  16. // 结果 abc 1 true
  17. }
  18.  
  19. // 格式字符串可以指定宽度
  20. func main() {
  21. a, b, c := "", , false
  22. fmt.Scanf("%4s%d%t", &a, &b, &c)
  23. fmt.Println(a, b, c)
  24. // 在终端执行后,输入 1234567true 回车
  25. // 结果 1234 567 true
  26. }
  1. // 功能同上面三个函数,只不过从 r 中读取数据。
  2. func Fscan(r io.Reader, a ...interface{}) (n int, err error)
  3. func Fscanln(r io.Reader, a ...interface{}) (n int, err error)
  4. func Fscanf(r io.Reader, format string, a ...interface{}) (n int, err error)
  5.  
  6. // 功能同上面三个函数,只不过从 str 中读取数据。
  7. func Sscan(str string, a ...interface{}) (n int, err error)
  8. func Sscanln(str string, a ...interface{}) (n int, err error)
  9. func Sscanf(str string, format string, a ...interface{}) (n int, err error)
  1. type student struct {
  2. Name string
  3. Age int
  4. Score float32
  5. }
  6.  
  7. func main() {
  8. var str = "stu01 18 89.92"
  9. var stu student
  10. fmt.Sscanf(str, "%s %d %f", &stu.Name, &stu.Age, &stu.Score)
  11. fmt.Println(stu)
  12. }
    输出:

{stu01 18 89.92}

  1.  

Go基础篇【第2篇】: 内置库模块 fmt的更多相关文章

  1. Go基础篇【第8篇】: 内置库模块 bytes [二]

    type Reader ¶ type Reader struct { // 内含隐藏或非导出字段 } Reader类型通过从一个[]byte读取数据,实现了io.Reader.io.Seeker.io ...

  2. Go基础篇【第1篇】: 内置库模块 OS

    os包提供了操作系统函数的不依赖平台的接口.设计为Unix风格的,虽然错误处理是go风格的:失败的调用会返回错误值而非错误码.通常错误值里包含更多信息.os包的接口规定为在所有操作系统中都是一致的.非 ...

  3. Go基础篇【第5篇】: 内置库模块 exec

    Package exec runs external commands. It wraps os.StartProcess to make it easier to remap stdin and s ...

  4. Go基础篇【第8篇】: 内置库模块 bytes [一]

    bytes包实现了操作[]byte的常用函数.本包的函数和strings包的函数相当类似. func Compare func Compare(a, b []byte) int Compare函数返回 ...

  5. Go基础篇【第6篇】: 内置库模块 flag

    import "flag" flag包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个set集合.每条都有各自的状态参数. 在使用flag时正常流程: 1.  ...

  6. Go基础篇【第4篇】: 内置库模块 bufio

    bufio包实现了有缓冲的I/O.它包装一个io.Reader或io.Writer接口对象,创建另一个也实现了该接口,且同时还提供了缓冲和一些文本I/O的帮助函数的对象. 即:为了解决CPU与磁盘IO ...

  7. Go内置库模块 flag

    import "flag" flag包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个set集合.每条都有各自的状态参数. 在使用flag时正常流程: 1.  ...

  8. day05 模块以及内置常用模块用法

    内置常用模块详解: 1 time 2 datetime 3 random   4 os 5 sys 6 shutil 7 shelve 8 xml 9 configparser 10 hashlib ...

  9. 【CobaltStrike】对CobaltStrike内置功能模块的了解

    对CobaltStrike内置功能模块的了解 0x00 右键功能列表 Interact 打开beacon Access dump hashes 获取hash Elevate 提权 Golden Tic ...

随机推荐

  1. Vue nodejs商城项目-登录模块

    一.登录功能 后端server/routes/users.js var User = require('./../models/users.js');   // 二级路由 // 登录接口 router ...

  2. Oracle EM12c 安装

    EM12c系统由下列组件构成: 1.Oracle Management Agent(管理代理) 2.Oracle Management Service(管理服务) 3.Oracle Managemen ...

  3. 前端之Vue.js库的使用

    vue.js简介 Vue.js读音 /vjuː/, 类似于 view Vue.js是前端三大新框架:Angular.js.React.js.Vue.js之一,Vue.js目前的使用和关注程度在三大框架 ...

  4. Python日常运维脚本

    1    扫描Windows系统CPU.内存.磁盘利用率 1.1    实现代码 #!usr/bin/env python #-*- coding:utf-8 _*- ""&quo ...

  5. python一个小程序:猜数字

    猜数字游戏程序运行示例: I am thinking of a number between 1 and 20. Take a guess. 8 Your guess is too low. Take ...

  6. 【shell脚本学习-2】

    #!/bin/bash - #echo do you have exetuate this project \n printf "please input your passwd" ...

  7. JavaScript -- 继承与原型链

    JavaScript对象有一个指向一个原型对象的链,当试图访问一个对象的属性的时候,他不仅仅会在该对象上面搜寻,还会搜寻该对象的原型,以及对象的原型的原型,依次层层搜索,直到找到名字匹配的属性或者到达 ...

  8. @staticmethod怎么用?

    早上起来写个小demo, 类中写了个方法, pycharm给这个方法加上了莫名其妙的波浪线, 对于一个有代码洁癖的人来说, 完全不能忍, 来看看为什么. 问题重现 pycharm的提示 上面说了, 这 ...

  9. php接口编程

    1:自定义接口编程 对于自定义接口最关键就是写接口文档,在接口文档中规定具体的请求地址以及方式,还有具体的参数信息 2:接口文档编写 请求地址 http://jxshop.com/Api/login ...

  10. python2.7练习小例子(二十七)

        27):题目:一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同.      #!/usr/bin/python # -*- coding: UTF-8 -* ...