Что делает %.6d
средний в:
printf("%s.%.6d len:%d ", timestr, header->ts.tv_usec, header->len);
Действительно ли это - опечатка?
Это кажется %.6d
совпадает с %6d
.
%.6d
В формате .precision для целочисленных спецификаторов (d, i, o, u, x, X) точность определяет минимум количество цифр для записи. Если записываемое значение короче этого числа, результат дополняется ведущими нулями . Значение не усекается, даже если результат длиннее.
%6d
Ширина (здесь 6) указывает минимальное количество символов для печати. Если печатаемое значение короче этого числа, результат будет дополнен пробелами . Значение не усекается, даже если результат больше.
Пример:
printf("%.6d\n%6d",1,1);
выводит:
000001
1
Первый будет заполняться нулями, второй - пробелами.
#include <stdio.h>
int main(void) {
printf ("%.6d\n", 123);
printf ("%6d\n", 123);
return 0;
}
Производит следующий вывод:
000123
123