格式化输出标准格式
% [flag] [fldwidth] [precision] [lenmodifier] convtype
格式化输入标准格式
% [*] [fldwidth] [m] [lenmodifier] convtype
*用于抑制转换,按照转换说明的其余部分对输入进行转换,但转换结果并不存放在参数中。
flag | 说明 |
---|---|
’ | 将整数按千分位分组字符 |
- | 在字段内左对齐输出 |
+ | 总是现实代符号转换的正负号 |
space | 如果第一个字符不是正负号,则在其前面加上一个空格 |
# | 指定另一种转换格式(如十六进制加0x前缀) |
0 | 添加前导0进行填充 |
fldwidth说明最小字段宽度,多余字符位置用空格填充。
precision说明整形转换后最少输出字符数、浮点数转换后小数点后的最少位数、字符串转换后最大字节数。
lenmodifier | 说明 |
---|---|
hh | 按signed或unsigned char输出 |
h | 按signed或unsigned short输出 |
l | 按signed或unsigned long或宽字符输出 |
ll | 按signed或unsigned long long输出 |
j | intmax_t或uintmax_t |
z | size_t |
t | ptrdiff_t |
L | long double |
convtype | 说明 |
---|---|
d、i | 有符号十进制 |
o | 无符号八进制 |
u | 无符号十进制 |
x、X | 无符号十六进制 |
f、F | 双精度浮点数 |
e、E | 指数格式双精度浮点数 |
g、G | 根据转换后的值解释为f、F、e、E |
a、A | 十六进制指数格式双精度浮点数 |
c | 字符(若带长度修饰服l,则表示宽字符) |
s | 字符串(若带长度修饰服l,则表示宽字符串) |
p | 指向void的指针 |
n | 到目前为值,此printf调用输出的字符的数目将被写入到指针所指向的代符号整形中 |
% | 一个%字符 |
C | 宽字符,等效于lc |
S | 宽字符串,等效于ls |