下面C语言输出是怎么样的?
格式控制符的形式:% [-] [0] [m/m.n] [l/h]
-:表示左对齐,缺省情况下为右对齐(未规定输出宽度则为左对齐)。
0:规定数据的宽度,该值大于数据实际的宽度时,左边用“0”补齐。
m/m.n:m规定数据的宽度(位数),m小于实际宽度,按实际输出,否则空格左补齐。
若为浮点数,n表示小数点后位数,n小于小数后实际的位数,则按四舍五入截取。
若为整数,n表示保留位数,n大于实际位数,不足左补0。
若为字符串,n表示从左至右截取的字符个数。
l/h:l表示长整型(%ld。%lo,%lx,%lu)和double型(%lf或%le);h表示短整型(%hd。%ho,%hx)。
按照上面内容,对号入座:
printf("%12.5f\n",123.);输出左对齐,共12位数字,左边补3个空格,小数5个0。输出: ___123.00000
printf("%12f\n",123.);输出左对齐,共12位数字,左边补2个空格,小数6个0(小数未指定位数,按默认6位)。输出:__123.000000
printf("%12.8d\n",12345);输出左对齐,共12位数字,左边补4个空格,数字保留8位左补3个0。输出:____00012345
printf("%12.8s\n","abcdefghij");输出左对齐,共12位,左边补4个空格,从左到右截取8个字符。输出:____abcdefgh