C格式化输出代码实例讲解
/*
C格式化输出:
>了解:格式控制字符串:(Format control string),由转换说明符(Conversion specifier), 标记(Flag), 域宽(Filed Width ), 精度(Precision), 文本字符(Literal character)组成。
1.不同进制的打印:%d, %o, %x;
2.打印浮点数:%e, 一般小数点后六位显示. %g,根据数据的绝对值大小来判断用浮点表示还是科学计数法表示。
3.域宽的打印:
%5d 中5表示的就是域宽为5,超出域宽不影响数据的表示,域宽大于数据的实际数位,数据自动向右对齐。
4.精度的打印:
%.5f 中会将浮点数的精度确定为小数点后5位
%.5d 中精度表示打印数据的最小位数,若精度 5 前为点(.)或者零(0)则用 0 补齐,若 5 前没有任何什么点缀 则->参考域宽
%.5s 中精度表示从一个字符串中打印出来的最大字符个数。
5.标记:
-(减号)在域宽中左对齐
+(加号)在正数前加上+,在负数前面加上-;
# 在不同进制上加上相应的前缀例如:0, 0x, 0X,或者浮点数没有小数部分时,强制显示小数点
时间:Dec 29, 2017 14:12
*/
#include
int main()
{
int a = 789;
float b =12.345;
const char *s = "heheda!";
printf("%05d\n", a);
printf("%#05o\n", a);
printf("%#05x\n", a);
printf("%-5d\n",a);
printf("%+5d\n",a);
printf("%020f\n", b);
printf("%10.2f\n", b);
printf("%010.2f\n", b);
printf("%10.2e\n", b);
printf("%010.2e\n", b);
printf("%-5f\n",b);
printf("%+5f\n",b);
printf("%020s\n", s);
printf("%.5s\n", s);
return 0;
}
/**************
00789
01425
0x315
789
+789
0000000000012.345000
12.35
0000012.35
1.23e+001
01.23e+001
12.345000
+12.345000
000000000000heheda!
hehed
请按任意键继续. . .
*/