Printf()、Sprintf()、Fprintf() 函数的区别用法是什么?
都是输出格式化字符串,只是输出到的目标不一样:
Printf() 是把格式化字符串输出到标准到标准输出(一般是屏幕,可以重定向)
Printf() 是和标准输出文件(stdout)关联的,Fprintf 则没有这个限制
Sprintf() 是把格式化字符串输出到指定的字符串中,可以用一个变量来接受,然后在打印
Fprintf() 是把格式字符串输出到指定的文件设备中,所以参数比Printf 多一个文件指针*File
主要用于文件操作,Fprintf() 是格式化输出到一个 Stream ,通常是一个文件
下表格出了常用的一些格式化样式中的动词及功能。
动词 | 功能 |
%v | 按值的本来值输出 |
%+v | 在 %v 的基础上,对结构体字段名和值进行展开 |
%#v | 输出 Go 语言语法格式的值 |
%T | 输出 Go 语言语法格式的类型和值 |
%% | 输出 %% 本体 |
%b | 整型以二进制方式显示 |
%o | 整型以八进制方式显示 |
%d | 整型以十进制方式显示 |
%x | 整型以 十六进制显示 |
%X | 整型以十六进制、字母大写方式显示 |
%U | Unicode 字符 |
%f | 浮点数 |
%p | 指针,十六进制方式显示 |