最近把%2d,%.2d和%2f等占位符搞混了,所以打算写一个文章来搞清楚这类占位符,并加以拓展总结。
一,%5d的扩展与总结
%5d”是的意思是以整形来格式化参数,并且当整数字符数少于5个情况下,多格式化一定数量空格来在左边填充,以使得空格和整数所用字符数的总和达到至少5个。
%5d | 宽度<5补空格,>5不变 |
%5f | 宽度<5补空格(包括小数点),>5不变 |
%5s | 宽度<5补空格,>5不变 |
若在5前加0,如%05d。则补的将从空格变为0。
%05d | 宽度<5补0,>5不变 |
%05f | 宽度<5补0(包括小数点),>5不变 |
%05s | 宽度<5补0,>5不变 |
若在5或05前加负号,则在右边加空格或0。
int a = 123; printf("%___",a); | |
%-5d | (123 ) |
%-05d | (12300) |
float a = 123.4; printf("%___",a); | |
%-5f | (123.4 ) |
%-05f | (123.40) |
a = "abc" ; printf("%___",a); | |
%-5s | (abc ) |
二,%.5d的扩展与总结
“%5d”表示按5位的固定位宽输出整型数值。如果不足5位,则在前面补空格;超过5位,则按实际位数输出。(有点像%5d等反过来)
%.5d | 宽度>5,只保留5位;宽度<5,不变 |
%.5f | 保留小数点后5位 |
%.5s | 宽度>5(包括空格),只保留5位(包括空格);宽度<5,不变。 |
三,练习
%3s, 格式输出字符串,右对齐,超出3个长度的,就全部输出;
%7.2s, 输出字符串占7个位置,右对齐,左补空格,输出2个字符;
%.4s, 仅输出4个字符,占位4个位置,右对齐;
%-5.3s: 输出3个字符,占位5个位置,左对齐右补空格。
四,最后
希望能够帮助到大家,如有建议或错误可联系。后续若有补充可能会继续更新~