printf中“%.6d”是什么意思

时间:2010-05-06 06:01:27

标签: c formatting printf

%.6d的含义是什么:

printf("%s.%.6d len:%d ", timestr, header->ts.tv_usec, header->len);

这是一个错字吗?

似乎%.6d%6d相同。

2 个答案:

答案 0 :(得分:27)

%.6d
  

在整数说明符(d,i,o,u,x,X)的 .precision 格式中,precision指定要写入的最小位数。如果要写入的值小于此数字,则结果用前导零填充。即使结果较长,也不会截断该值。

%6d
  

宽度(此处为6)指定要打印的最小字符数。如果要打印的值小于此数字,则结果用空格填充。即使结果较大,也不会截断该值。

示例:

printf("%.6d\n%6d",1,1);

输出:

000001
     1

答案 1 :(得分:8)

前者将用零填充,后者用空格填充。

#include <stdio.h>
int main(void) {
    printf ("%.6d\n", 123);
    printf ("%6d\n", 123);
    return 0;
}

生成以下输出

000123
   123