What does “%.6d” mean in printf

前端 未结 2 1226
长情又很酷
长情又很酷 2021-02-14 11:14

What does %.6d mean in:

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

Is it a typo?

It seem

相关标签:
2条回答
  • 2021-02-14 12:00

    The former will pad with zeros, the latter with spaces.

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

    Produces the following output,

    000123
       123
    
    0 讨论(0)
  • 2021-02-14 12:03
    %.6d
    

    In the .precision format for integer specifiers (d, i, o, u, x, X), precision specifies the minimum number of digits to be written. If the value to be written is shorter than this number, the result is padded with leading zeros. The value is not truncated even if the result is longer.

    %6d
    

    The width (here 6) specifies the minimum number of characters to be printed. If the value to be printed is shorter than this number, the result is padded with blank spaces. The value is not truncated even if the result is larger.

    Example:

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

    outputs:

    000001
         1
    
    0 讨论(0)
提交回复
热议问题