Что делает “%.6d”, означают в printf

Что делает %.6d средний в:

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

Действительно ли это - опечатка?

Это кажется %.6d совпадает с %6d.

9
задан meagar 7 May 2010 в 13:14
поделиться

2 ответа

%.6d

В формате .precision для целочисленных спецификаторов (d, i, o, u, x, X) точность определяет минимум количество цифр для записи. Если записываемое значение короче этого числа, результат дополняется ведущими нулями . Значение не усекается, даже если результат длиннее.

%6d

Ширина (здесь 6) указывает минимальное количество символов для печати. Если печатаемое значение короче этого числа, результат будет дополнен пробелами . Значение не усекается, даже если результат больше.

Пример:

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

выводит:

000001
     1
27
ответ дан 4 December 2019 в 06:40
поделиться

Первый будет заполняться нулями, второй - пробелами.

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

Производит следующий вывод:

000123
   123
8
ответ дан 4 December 2019 в 06:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: