В C++, setw функция используется для определения номера символов, которые будут использоваться в качестве ширины поля для следующей операции вставки. Есть ли какая-либо функция в C, я имею в виду в стандартной библиотеке для C, которая делает то же самое?
printf ("% 5d", 42);
Напечатает 42 с использованием 5 пробелов. Прочтите справочные страницы printf, чтобы понять, как работают символы заполнения, переполнения и другие нюансы.
РЕДАКТИРОВАТЬ: Некоторые примеры -
int x = 4000;
printf ("1234567890\n");
printf ("%05d\n", x);
printf ("%d\n", x);
printf ("%5d\n", x);
printf ("%2d\n", x);
Дает результат
1234567890
04000
4000
4000
4000
Обратите внимание, что % 2d
был слишком мал для обработки переданного ему числа, но все же напечатал все значение.
Нет, поскольку поток, используемый в C, не поддерживает состояние так, как поток объект делает.
Вы должны указать, например, printf ()
с использованием подходящего кода форматирования.
Другой вариант - определить строку формата как переменную:
char print_format[] = "%5d"; printf(print_format, 42);
Приведенное выше похоже на C++ setw
, в том смысле, что вы можете установить содержимое переменной перед печатью. Во многих случаях требуется динамическое форматирование вывода. Вот один из методов достижения этой цели.