Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does "%.6d" mean in printf

What does %.6d mean in:

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

Is it a typo?

It seems %.6d is the same as %6d.

like image 281
user198729 Avatar asked May 06 '10 06:05

user198729


People also ask

What does 5D mean in C?

its length so that one is 5 digits.

What does printf (% 5D mean?

Re “What does printf ("%5D") mean in C?”, it means nothing. It's a syntax error and won't even compile. (Try it!) The only place in all of C where "%D" even has a meaning in in time-and-date formatting using strftime or strptime, where it means “print date in mm/dd/yyyy format”.

What is %- 8d in C?

In the above program, %8d specifier displays the value after 8 spaces while %-8d specifier will make a value left-aligned.


1 Answers

%.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
like image 176
codaddict Avatar answered Nov 15 '22 21:11

codaddict