Что означает спецификатор формата% * s?

Что означает спецификатор формата% * s?

Ответов: 5


45 ов принято

Он используется для динамического определения того, что такое ширина поля :

  • Ширина не указывается в строке формата, а как дополнительный аргумент целочисленного значения, предшествующий аргументу, который должен быть отформатирован.

поэтому «indent» указывает, сколько места выделяется для строки, которая следует за ней в списке параметров.

Так,

printf("%*s", 5, "");

такой же как

printf("%5s", "");

Это хороший способ разместить некоторые пробелы в вашем файле, избегая цикла.


Не используйте «% * s» в буфере, который не завершен NULL (упакован), думая, что он напечатает только поле «длина».


1

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

Ширина не указывается в строке формата, а как дополнительный аргумент целочисленного значения, предшествующий аргументу, который должен быть отформатирован.

например: printf("%*s", 4, myValue);эквивалентно printf("%4s", myValue);.


0

* Вызывает fprintf для вывода вывода до тех пор, пока он не станет шириной n символов, где n - целочисленное значение, хранящееся в аргументе функции, предшествующем представлению модифицированного типа.

printf("%*d", 5, 10) //will result in "10" being printed with a width of 5.

0

Спецификатор формата% 4s выводит строку в ширину поля 4, т. Е. Printf отображает значение с по меньшей мере 4 символьными позициями.

Если значение, которое должно быть выведено, lessпревышает 4 символа, значение right justifiedпо умолчанию находится в поле.

Если значение greaterпревышает 4 символа, ширина поля expandsсоответствует соответствующему количеству символов.

Чтобы оставить значение влево, используйте отрицательное целое число, чтобы указать ширину поля.

Ссылки: Javaa € ? Как программировать (ранние объекты), десятое издание

C, PRINTF, формат спецификаторы,
Похожие вопросы