格式控制符扩充 % + :
%- 左对齐(默认是右对齐)
%0 输出的空位用0补充
%m 表示字宽
如int a = 5 printf("%06d",a); //000005
printf("%-6d",a); //5
printf("%-06d",a); //5 (只有在右对齐且存在空位时才补0)
%.n 对实数,表示输出n位小数;对字符串,表示截取的字符个数。
%s 表示输出字符串
如: printf("%s","shantao"); //"shantao"
printf("%10s","shantao"); //" shantao"
printf("%-10s","shantao"); //"shantao "
printf("%-010s","shantao"); //"shantao "
printf("%010s","shantao"); //"000shantao"
printf("%010.5s","shantao"); //"00000shant"
printf("%-010.5s","shantao"); //"shant "
%l 输出长整形
%d —— 以带符号的十进制形式输出整数
%o —— 以无符号的八进制形式输出整数
%x —— 以无符号的十六进制形式输出整数
如:int a = 1024;
printf("十进制 = %d,八进制 = %o,十六进制 = %x", a, a, a);
//打印结果: 十进制 = 1024,八进制 = 2000,十六进制 = 400
%u —— 以无符号的十进制形式输出整数
如:int a = -1;
printf("%u",a); //4294967295
%c —— 以字符形式输出单个字符
%f —— 以小数点形式输出单、双精度实数
%e —— 以标准指数形式输出单、双精度实数
输出数据共占13位,其中整数部分为1位非
零数字,小数点占1位,小数部分为6位,
指数部分e占1位,指数符号占1位,指数为
3位。若输出数据为负数,还应增加一位整
数部分的符号位。
如:float a = 12345677;
printf("%e", a); //1.234568e+007
a = -12345677;
printf("%e", a); //-1.234568e+007
%g —— 选用输出宽度较小的格式输出实数
根据数值的大小,自动选择用f格式+或e格式输出
实数。输出时选择占宽度较小的一种,且不输出
无意义的零。
转义字符可以作为字符串的一部分输出,会正常发挥作用,但格式空字符无效.