赞
踩
1.标记:+、-、空格、#和0
①-:待打印左对齐。即从字段的左侧开始打印该项。
printf("*%5d*\n",999);
printf("*%-5d*\n",999);
* 999*
*999 *
②+:有符号值若为正,则在值前面显示加号;若为负,则在值前面显示减号。
③空格:有符号值若为正,则在值前面显示前导空格(不显示任何符号);若为负,则在值前面显示减号,+标记覆盖一个空格。在转换说明中使用空格在输出的正值前面生成前导空格,这样打印出来的正负值在相同字段宽度下的有效数字位数相同比较美观。
printf("**% d**\n",999);
printf("**%d**\n",-999);
** 999**
**-999**
④#:把结果转换为另一种形式。%o、%x(%X)、%#o和%#x的用法和打印整数类型一样。
printf("%x %X %#x\n",31,31,31)
1f 1F 0x1f
⑤0:对于数值格式,用前导0代替空格填充字段宽度。对于整数格式,如果出现-标记或指定精度,则忽略该标记。
printf("%05d\n",36);//用前导0代替前导空格填充字段宽度
printf("%05.3d\n",36);//指定精度的整数格式忽略前导0标记
00036
036
2.数字:最小宽度。若给定的字段不能容纳待打印的数字或字符串,系统会使用更宽的字段以适应待打印字符。
printf("*%2d*\n",999); //字符宽度为2,若不能容纳系统会用更宽的字段
*999*
3..数字:精度。
①对于%e、%E和%f转换,表示小数点右边的小数位数。
printf("**%.3e**\n",314.15926);//3位小数
printf("**%.3E**\n",314.15926);
printf("**%.3f**\n",314.15926);
**3.142e+002**
**3.142E+002**
**314.159**
②对于%g和%G转换,表示有效数字的最大位数。
printf("%.3g\n",6.666666);//%g和%G根据值不同自动选择%f、%e和%E
printf("%.3G\n",6.666666);//%e和%E用于指数小于-4或大于或等于精度
printf("%.3g\n",666666.666666);
printf("%.3g\n",0.00087654321);
printf("%.3g\n",0.000087654321);//指数计数法指数小于-4
6.67
6.67
6.67e+005
0.000877
8.77e-005
③对于%s转换,表示待打印字符的最大数量。
printf("*%10.5s*\n","Farewell , thou art too dear for my possessing.");//打印5个字符
printf("*%-10.5s*\n","Farewell , thou art too dear for my possessing.");
* Farew*
*Farew *
④对于整型转换,表示待打印数字的最小位数。如有必要,使用前导0来达到这个位数,只使用.表示其后跟随一个0,所以%.f和%.0f相同。
printf("*%f*\n",3333333852.99); //默认打印小数点后6位小数,用0填充小数位数
printf("*%e*\n",3333333852.99);//默认左侧打印1个数字,小数点后打印6位小数,变成指数计数
printf("*%020.2f*\n",3333333852.99);//小数点前是宽度20,后面是小数位数。用0填充宽度
printf("*%3.1f*\n",3333333852.99);
*3333333852.990000*
*3.333334e+009*
*00000003333333852.99*
*3333333853.0*
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。