fmt,Go 语言自带的格式化输入输出包

fmt 可以理解为 Format(格式)的缩写——因为它擅长格式化数据(比如把数字嵌进句子中间)。fmt 就是 Go 语言的"终端对话工具",让你能在屏幕上显示东西,也能从键盘获取输入。

fmt包的常用指令

概念对应 fmt 函数
标准输出(打印到屏幕)PrintPrintlnPrintf
标准输入(从键盘读)ScanScanlnScanf
格式化字符串(不打印)Sprintf

更底层的io包

Go 里其实还有更底层的 I/O 包,但 fmt 是最常用、最方便的那个:

  • 底层:os 包(直接操作文件描述符)
  • 带缓冲:bufio 包(性能更好)
  • 格式化:fmt 包(你平时最需要的)

关于带缓冲

不带缓冲(直接写文件):
像你写一个字,就跑去邮局寄一封信,写1000个字,跑1000趟邮局,累死,而且慢;
带缓冲(用 bufio):
像你先在本子上写1000个字,写完了整本一起寄,只跑1趟邮局,快很多。

花式print

  • Print:打印,无换行
  • Println:打印,有换行(日常最常用)
  • Printf:打印,需格式化(%s、%d、%v 等)
  • Sprint:不打印,返回拼接的字符串(S = String)
  • Sprintln:不打印,返回带换行的字符串
  • Sprintf:不打印,返回格式化后的字符串

scan 的 三种写法

函数停止条件对换行的处理格式要求典型场景
Scan读够数量为止换行当作分隔符(跳过)无,空格/换行分隔即可灵活输入,数量固定
Scanln遇到换行立即停换行是终点(不可跨行)无,空格分隔即可要求用户一行输完
Scanf读够数量为止由格式字符串决定必须匹配格式固定格式输入(如 3,5

格式化

0格式化描述接收类型
1%%输出百分号%任意
2%s输出string/[] bytestring,[] byte
3%q格式化字符串,输出的字符串两端有双引号""string,[] byte
4%d输出十进制整型值整型
5%f输出浮点数浮点
6%e输出科学计数法形式 ,也可以用于复数浮点
7%E%e相同浮点
8%g根据实际情况判断输出%f或者%e,会去掉多余的 0浮点
9%b输出整型的二进制表现形式数字
10%#b输出二进制完整的表现形式数字
11%o输出整型的八进制表示整型
12%#o输出整型的完整八进制表示整型
13%x输出整型的小写十六进制表示数字
14%#x输出整型的完整小写十六进制表示数字
15%X输出整型的大写十六进制表示数字
16%#X输出整型的完整大写十六进制表示数字
17%v输出值原本的形式,多用于数据结构的输出任意
18%+v输出结构体时将加上字段名任意
19%#v输出完整 Go 语法格式的值任意
20%t输出布尔值布尔
21%T输出值对应的 Go 语言类型值任意
22%c输出 Unicode 码对应的字符int32
23%U输出字符对应的 Unicode 码rune,byte
24%p输出指针所指向的地址指针

标签: go语言

移动端可扫我直达哦~

推荐阅读

thumbnail 2026-06-04

go语言gin框架的学习笔记

上半年尝试制作了一个微信小程序,通过小程序请求后台服务器,服务器负责组装好用户需求的mp3文件,然后返回给用户播放地址,以实现一个简单的听写功能。其中后台的逻辑基本都是通过deepseek实现的,虽然成功跑通了,但是一直想从头手搓一遍...

少儿编程 go语言

thumbnail 2026-06-02

提升读写性能,go语言的bufio包

最近在尝试学习go语言,想去洛谷做几道题吧,结果前几个答案是正确的,最后两个报了超时,标准输入输出fmt存在读写性能上的缺陷。deepseek推荐了这个bufio包。bufio 包的核心功能bufio 提供缓冲 I/O,通过减少系统调...

少儿编程 go语言

thumbnail 2026-05-27

乱点技能树之-go语言笔记篇

系统仍旧是廉颇老矣的windows7,所以很多软件的新版本都没法运行,就像go已经出到了1.26版本,但win7上仅支持1.20.14,再往上就不受支持了,所以下方的代表仅在上述版本中验证通过。学习go语言的第一感受是,go语言取消了...

少儿编程 go语言