C 语言中的 printf() 格式输出

作为 C 语言中主力的标准输出函数, printf 为我们提供了丰富的格式选项。

1. 格式参数

首先列举一下 printf 全部的参数:

% [标志位] [显示占位宽度] [精度] [数字长度] 说明符

这里面用括号包裹的内容为可选参数,我们分项来介绍上面的各项参数,首先从最常用的说明符开始介绍:

说明符 参数含义 输出示例
o 无符号八进制数 410
x 无符号十六进制数 7ff
X 无符号十六进制数(表示数字的字母部分大写) 7FF
d 或者 i 有符号十进制整数 -3245
u 无符号十进制整数 3421
f 或者 F 十进制浮点数 3.14
e 科学计数法 表示指数的e小写 3.142333e+2
E 科学计数法 表示指数的e小写 3.142333E+2
g 在 %e 和 %f 格式中,自动选择最短的输出格式 3.14
G 在 %E 和 %F 格式中,自动选择最短的输出格式 3.14
c 字符 h
s 字符串 hello
p 指针地址 8ffff

接下来是标志位的介绍。

标志位 参数含义
- 向左对齐,默认是向右对齐
+ 强制显示正负号,在默认情况下对于只有负数的时候才显示负号

再下来介绍宽度参数:

宽度 参数含义
(数字) 显示的最小宽度。如果要显示的内容达不到最小宽度数值,那么用空格补齐。

然后介绍显示精度的参数。

精度 参数含义
(数字) 最小精度的数值

最后的数字的长度的问题比较复杂,所以通过对比表格展示了参数使用前后的区别。表格第一行表示不使用参数的情况下的显示。

数字长度 d i u o x X f F e E g G c s
(none) int unsigned int double int char*
hh signed char unsigned char      
h short int unsigned short int      
l long int unsigned long int   wint_t wchar_t*
ll long long int unsigned long long int      
j intmax_t uintmax_t      
z size_t size_t      
t ptrdiff_t ptrdiff_t      

2. 实例参考

下面我们来看下 printf() 函数的具体使用:

 
实例演示
预览 复制