Ответ 1
Нет необходимости создавать строку специального формата. printf
позволяет указать точность с использованием параметра (предшествующего значению), если вы используете .*
в качестве точности в теге формата.
Например:
printf ("%d %.*s", number, SIZE, letters);
Примечание: существует разница между шириной (которая является минимальной шириной поля) и точностью (которая дает максимальное количество символов для печати). %*s
указывает ширину, %.s
указывает точность. (и вы также можете использовать %*.*
но тогда вам нужны два параметра: один для ширины для точности)
См. Также справочную страницу printf ( man 3 printf
под Linux) и особенно разделы по ширине и точности поля:
Вместо десятичной разрядной строки можно написать "*" или "* m $" (для некоторого десятичного целого числа m), чтобы указать, что точность указана в следующем аргументе или в m-м аргументе, соответственно, что должно быть типа int.