include "stdio.h"void main(){ int y=9;printf("y=%-8ld\n",y);printf("y=%-08ld\n",y);printf("y=%08ld\n",y);printf("y=%+8ld\n",y);} 输出结果为:y=9 y=9 y=00000009 y= +9 为什么呢?因为 "-08" "+8" "08" 都代表输出结果占8个字符的位置。“...
C中格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型;- 结果左对齐,右边填空格 + 输出符号(正号或负号)0 对于所有的数字格式,用前导0填充字段宽度,若出现-标志或者指定了精度,忽略 最全的看这里:http://hi.baidu.com/xdhydn/blog/item/08b90357d6eecdd5b645...
1),%-8ld,表示y长度为8位,不够的部分在后面补空格。这和%8ld相对,即在前面补空格;2), 在1)的基础上加上0表示不够部分补零(和1) 所述情况对应)3), %+8ld并不是神马特殊情况,只不过是在这段串中加了个 + //+ 也用来补空格了、、
数字8代表输出的宽度 前面无符号表示右对齐,“-”号表示左对齐,“+”号表示在数字前面添上数字的符号。“0”表示对空白字段填充“0”,默认填充空格~