A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天简单的来总结下,发现很多人对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中的作用是指定格式化输出的对齐方式。
如果什么都不加,默认是右对齐,加上之后就是表示输出的对齐方式是左对齐。


时间不早了,就写到这里。。。。

评分

参与人数 3黑马币 +23 收起 理由
为荣艺学iOS + 6 淡定
骑白马的唐僧 + 7 骚年,你很有想法,我们做朋友吧.
wzf2015 + 10 赞一个!

查看全部评分

47 个回复

正序浏览
易沛东 来自手机 中级黑马 2015-11-27 12:37:06
48#
我的脚下拥有的是其余那1%人的领土……
回复 使用道具 举报
赞一个。。。。
回复 使用道具 举报
好厉害加油啊啊啊啊啊啊啊
回复 使用道具 举报
好东西,谢谢分享
回复 使用道具 举报
顶!!!!!!!!!!!
回复 使用道具 举报
膜拜楼主,学到了
回复 使用道具 举报
还有sprintf() 和snprintf()
回复 使用道具 举报
很赞哟!加油!
回复 使用道具 举报
受教了   --!
回复 使用道具 举报
Mr.Yan 中级黑马 2015-11-24 23:33:50
39#
虽说用的地方不多,单总算也扩展了芝士,赞一个~
回复 使用道具 举报
郭嘉 中级黑马 2015-11-24 23:30:12
38#
恩,又学到一招{:2_31:}
回复 使用道具 举报
怎么说呢,现在来说其实实用性没有那么高了。。
回复 使用道具 举报
真是服了,水贴啊
回复 使用道具 举报
长见识了
回复 使用道具 举报
zale 中级黑马 2015-11-24 23:14:41
34#
加油 努力学习
回复 使用道具 举报
回复 使用道具 举报
fuck{:2_30:}
回复 使用道具 举报
谢谢你  已经实验了一下{:2_31:}{:2_30:}
回复 使用道具 举报

长见识就没白写。。。。哈哈 以后写帖子多多来捧场哈。。。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马