今天简单的来总结下,发现很多人对printf的一些特殊功能并不是很清楚。所以总结一下供大家学习交流,如有错误,欢迎大家批评指正。
printf基本的使用,我在这里不说了,那不是本文的重点,下面直接简单粗暴的写上两点干货:
1、在格式化串中添加数字表示使用软约束去拼接字符串。
如:
%15s 本来%s表示输出字符串,但是中间加上一个数字15,表示约束这个字符串为15个字符,之所以说这个约束是软约束,是因为这个约束不是强制的,如果字符串长度小于15,那么这个字符串占则占用15个字节,如果字符串超过了15个字节,字符串不会截断,而是输出实际的长度。
在打印浮点数的时候,会见到如下的写法:
%3.5f 本来%f是打印小数、单精度和双精度都有自己的小数点占用位数,但是中间加了一个小数3.5,其中整数部分3是约束被打印浮点数整数所占位数、小数部分5是约束被打印浮点数小数部分占用位数。需要注意的是,对整数部分的约束为软约束,如果超过的话,不会截断。对小数部分的约束是强制性的约束,超过部分会被截断,并且超过的部分会四舍五入。目前接触到的,只有小数部分的约束是强制性的。
另外还有一种用法就是在格式化输出整数的时候有如下写法:
%06d 原本%d打输出的是整数,%6d的话就是将证书输出的位数限制在6位以内,前面的0表示,如果被打印数没有超过6个字节,那么不够的字节使用0填充,但这里注意,如果要填充,第一位只能是0,如果是其他的值就变成%16d,就是另外的意思了。这个约束也是软约束。
2、printf中的"-"
"-"在printf中的作用是指定格式化输出的对齐方式。
如果什么都不加,默认是右对齐,加上之后就是表示输出的对齐方式是左对齐。
时间不早了,就写到这里。。。。
|