1.printf()函数——输出函数
转换说明 | 输出 |
%a | 浮点数、十六进制数和p记数法 |
%A | 浮点数、十六进制数和p记数法 |
%c | 单个字符 |
%d | 有符号十进制整数 |
%e | 浮点数、e记数法 |
%E | 浮点数、e记数法 |
%f | 浮点数、十进制记数法 |
%g | 根据值得不同,自动选择%f或%e。%e格式用于指数小于-4或者大于或等于精度时 |
%G | 根据值得不同,自动选择%f或%E。%E格式用于指数小于-4或者大于或等于精度时 |
%i | 有符号十进制整数(与%d相同) |
%o | 无符号八进制整数 |
%p | 指针 |
%s | 字符串 |
%u | 无符号十进制整数 |
%x | 无符号十六进制整数,使用十六进制数0f |
%X | 无符号十六进制整数,使用十六进制数0F |
%% | 打印一个百分号 |
修饰符 | 含义 |
标记 | 5种标记(-、+、空格、#和0),可以不使用标记或使用多个标记 示例:"%-10d" |
数字 | 最小字段宽度 如果该字段不能容纳待打印的数字或字符串,系统会使用更宽的字段 示例:"%4d" |
. 数字 | 精度 对于整型转换,表示待打印数字的最小位数 如有必要,使用前导0来达到这个位数 |
h | 和整型转换说明一起使用,表示 short int 或unsigned short int 类型的值 示例:"%hu"、"%hx"、"%6.4hd" |
hh | 和整型转换说明一起使用,表示signed char或unsigned char类型的值 示例:"%hhu"、"%hhx"、"%6.4hhd" |
j | 和整型转换说明一起使用,表示intmax_t或uintmax_t类型的值。这些类型定义在stdint.h中 示例:"%jd"、“%8jx" |
l | 和整型转换说明一起使用,表示long int或unsigned long int 类型的值 示例:"%ld"、"%8lu" |
ll | 和整型转换说明一起使用,表示long long int 或unsigned long long int类型的值(C99) 示例:"%lld"、"%8llu" |
L | 和浮点转换说明一起使用,表示long double类型的值 示例:“%Lf"、“%10.4Le" |
t | 和整型转换说明一起使用,表示ptrdiff_t 类型的值。ptrdiff_t是两个指针差值的类型(C99) 示例:"%td"、“%12ti" |
z | 和整型转换说明一起使用,表示size_t 类型的值。size_t是sizeof 返回的类型(C99) 示例:"%zd"、“%12zd" |
标记 | 含义 |
- | 待打印项左对齐。即,从字段的左侧开始打印该项 示例:”%-20s" |
+ | 有符号值若为正,则在值前面显示加号;若为负,则在值前面显示减号 示例:“%+6.2f" |
空格 | 有符号值若为正,则在值前面显示前导空格(不显示任何符号);若为负,则在值前面显示减号标记并覆盖空格 示例:“%6.2f" |
# | 把结果转换为另一种形式。如果是%o格式,则以0开始;如果是%x或%X格式,则以0x或0X开始;对于所有的浮点格式,#保证了即使后面没有任何数字,也打印一个小数点字符。对于%g和%G格式,#防止结果后面的0被删除 示例:"%#0"、”%#8.0f"、 "%+#10.3e" |
0 | 对于数值格式,用前导0代替空格填充字段宽度。对于整数格式,如果出现-标记或指定精度,则忽略该标记 示例:"%010d"和"%08.3f" |