Printf с вопросом о двойном форматировании - PullRequest
1 голос
/ 16 августа 2010

У меня есть следующий оператор printf:

printf("val=%-4.2lf", val);

Однако val никогда не заполняется пробелами, поэтому пространство, занимаемое val, отличается, если перед десятичной запятой есть 3 или 4 цифры.Разве 4 в спецификаторе формата не гарантируют наличие хотя бы 4 пробелов?

Извините за новый вопрос, но он меня расстраивает.

1 Ответ

4 голосов
/ 16 августа 2010

4 указывает минимальное поле total с - у вас также есть десятичная точка и 2 цифры после десятичной точки, которые берут минимум 3 символа из этой ширины поля из 4 символов.

Поэтому, если вы хотите, чтобы минимальная ширина поля составляла 4 символа перед десятичной запятой, вам нужно использовать формат %-7.2lf.

...