关于printf()的转换说明修饰符
修饰符 | 含义 |
---|---|
标记 | 五种标记(-,+,空格,#和()),可以不使用标记或者使用多个标记。示例:“%-10d”。 |
数字 | 最小字段宽度,如果该字段不能容纳待打印的字段或字符串,系统会使用更宽的字段。示例“%4d”。 |
.数字 | 1.表示精度 2.对于%e,%E和%f的转换,表示小数点右边数字的位数。3.对于%g和%G转换,表示有效数字最大位数。4.对于%s转换,表示待打印字符的最大数量。5.对于整形转换,表示待打印数字的最小位数。6.如有必要,使用前导0来使之到达这个位数。7.只使用.表示其后跟随一个0,所以%.f和%0.f 相同。示例:”%5.2“打印一个浮点数,字符宽度为5字符,其小数点后应有两位数字。 |
h | 和整型转换说明一起使用,表示short int或unsigned short int 类型的值。示例:”%hu“,”%hx“,”6.4hd’ |
hh | 和整型转换说明一起使用,表示signed char或unsigned char类型的值。示例:“%hhu”,“%hhx”,“%6.4hhd” |
j | 和整型转换说明一起用,表示intmax_t或unitmax_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类型的值是。示例:“%lld”,%“8llu” |
t | 和整型转换一起使用表示ptrdiff_t类型的值。ptrdiff_f是指两个指针差值的类型(c99)示例:“%td”,“%12ti” |
z | 和整型转换一起使用,表示size_t是sizeof返回的类型(c99)示例:“%zd”,“%12zd” |
关于prinf()中的标记
标记 | 含义 |
---|---|
— | 待打印项左对齐,即,从字段的左侧开始打印该项,示例:“%+6.2f” |
+ | 有符号值若为正,则在值前面显示加号;若为负,在值前显示减号。示例:“+%+6.2f” |
空格 | 有符号若为正,则在值前显示前导空格(不显示任何符号);若为负,则在值前显示减号+标记并覆盖空格 |
# | 把结果转换成另一种形式,如果是%o形式,则以0开始;如是%x或%X格式,则以0x或0X开始;对于所有的浮点格式,#保证了即使后面没有数字,也打印一个小数点字符。对于%g和%G格式,#防止结果后面的0被删除。示例:“%#o”,”#8.0f“,”+#10.3e“ |
0 | 对于数值格式,用前导0代替空格填充字段宽度。对于整数格式,如果出现-标记或指定精度,则忽略该标记。示例:”%010d“和”0.8.3f“ |