C语言 printf() 与格式控制符-c-yu-yan-ge-shi-kong-zhi-fu.md
格式控制符
|
格式控制符 |
说明 |
| — | — |
|
%c |
输出一个单一的字符 |
|
%hd、%d、%ld |
以十进制、有符号的形式输出 short、int、long 类型的整数 |
|
%hu、%u、%lu |
以十进制、无符号的形式输出 short、int、long 类型的整数 |
|
%ho、%o、%lo |
以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数 |
|
%#ho、%#o、%#lo |
以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数 |
|
%hx、%x、%lx
%hX、%X、%lX |
以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。 |
|
%#hx、%#x、%#lx
%#hX、%#X、%#lX |
以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。 |
|
%f、%lf |
以十进制的形式输出 float、double 类型的小数 |
|
%e、%le
%E、%lE |
以指数的形式输出 float、double 类型的小数。如果 e 小写,那么输出结果中的 e 也小写;如果 E 大写,那么输出结果中的 E 也大写。 |
|
%g、%lg
%G、%lG |
以十进制和指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0。如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写。 |
|
%s |
输出一个字符串 |
printf() 格式控制符的完整形式如下:
1 | %[flag][width][.precision]type |
- 表示此处的内容可有可无,是可以省略的。
- type 表示输出类型
- width 表示最小输出宽度
- .precision 表示输出精度
- flag 是标志字符
|
标志字符 |
含 义 |
| — | — |
| - |
-
表示左对齐。如果没有,就按照默认的对齐方式,默认一般为右对齐。 |
|
- |
用于整数或者小数,表示输出符号(正负号)。如果没有,那么只有负数才会输出符号。 |
|
空格 |
用于整数或者小数,输出值为正时冠以空格,为负时冠以负号。 |
|
|
-
对于八进制(%o)和十六进制(%x / %X)整数,# 表示在输出时添加前缀;八进制的前缀是 0,十六进制的前缀是 0x / 0X。
对于小数(%f / %e / %g),# 表示强迫输出小数点。如果没有小数部分,默认是不输出小数点的,加上 # 以后,即使没有小数部分也会带上小数点。
|