欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

格式化输出

程序员文章站 2022-07-14 23:54:32
...

printf函数提供格式化输出转换。
格式串包含两种类型的对象:普通字符(直接被复制到输出流中)和转换字符(分别决定下一后续参数的的转换和打印)。

转换字符

  • u 无符号十进制表示

  • h 表示将相应的参数按short或者unsigned short类型输出

  • l 表示将相应的参数按long或者unsigned long类型输出

  • L表示将相应的参数按long double类型输出
    备注:根据上述,如果是无符号数据类型,应该用u,但如果数据类型是short或者long,不管是否是无符号都应该用对应的h或者l表示

  • 点号前数值:指定最小字段宽度。若参数的字符数小于此数值,则在参数左边填充一些字符(空格或0)

  • 点号:用于分割字段的宽度和精度

  • 表示精度的数:对于字符串,指定打印的字符串的最大个数;对于e、E、f转换,它指定打印的小数点后的数字位数;对于g或G转换,它指定打印的有效数字位数;对于整型数,它指定打印的数字位数(必要时可加填充位0以达到要求的宽度)
    举例

/字符/
char a[] = "abcdefg";
printf("a = %.4s\n", a);//指定打印的字符串最大个数为4
//结果:a = abcd
/e,f转换/
double a = 3.1415926;
printf("a = %.4f\n", a);//指定打印的小数点后的数字位数为4
//结果:a = 3.1416
/g,G转换/
double a = 0.000001234567;
printf("a = %.5g\n", a);//指定打印的有效数字位数为5
//结果:a = a = 1.2346e-06
/整型数/
int a = 123;
printf("a = %.4d\n", a);//指定打印的数字位数为4,不够用0填充
//结果a = 0123


###参考
[C程序设计语言(第2版.新版)](https://book.douban.com/subject/1139336/)222页