在上一个小demo《printf()函数(1)》中主要说了一下printf()函数的转换说明符,这些转移说明符是可以被修饰的。我们可以在%d和定义的转义字符之间通过插入修饰符对基本的转换说明加以修改。
printf()修饰符
digit(s) 字符宽度的最小值结果:
不够的前面补空格,超了的,不用补了。
.digit(s) 精度
结果:
小数点前面表示的是字符宽度,不够的空格填充,小数点后面表示的是有多少个数字。
h 和整数转换说明符一起使用,表示一个short int 或者unsigned short int
结果:
1024 本身就占了4个字段,所以1hd、2hd、3hd、4hd效果是一样的,5hd有一个空格填充在前面。
hh 和整数转换说明符一起使用,表示一个short char 或者unsigned charl 和整数转换说明符一起使用,表示一个long int 或者unsigned long intll 和整数转换说明符一起使用,表示一个long long int 或者unsigned long long intL 和浮点转换说明符一起使用 ,表示一个long deublej 和整数转换说明符一起使用,表示一个intmax_t或者uintmax_tz 和整数转换说明符一起使用,表示一个size_t值(sizeof返回的类型)(C99)t 和整数转换说明符一起使用,表示一个ptrdiff_t值(两个指针之间的差相对应的类型)(C99)
这几个都是很基本的,就不过多的介绍了。
print()的标志
- 项目是左对齐的:也就是说,会把项目打印在字段的左侧开始处结果:
全部左对齐了
+ 有符号的值若为正,则显示带加号的符号:若为负,则带减号的符号
结果:
区分正负号,默认左对齐了。
(空格) 有符号的值若为正,则显示时带前导空格(但是不显示符号);若为负,则带减号符号。+标志会覆盖空格标志
结果:
#使用转换说明的可选形式。若为%o格式,则以0开始;若为%x和%X格式,则以0x或0X开始。对于所有的浮点形式,#保证了及时不跟任何数字,也打印一个小数点字符。对于%g和%G格式,它防止尾随零被删除
结果:
0对于所有的数字格式,用前导零而不是用空格填充字段宽度。如果出现-标志或者指定了精度(对于整数)则忽略该标志
结果:
printf()的返回值
printf()函数有一个返回值,返回的是所打印的字符的数目。
结果:
test code
#include
int main()
{
int a = 1;
printf("a is %d