C-equivalent функции 'setw'

В C++, setw функция используется для определения номера символов, которые будут использоваться в качестве ширины поля для следующей операции вставки. Есть ли какая-либо функция в C, я имею в виду в стандартной библиотеке для C, которая делает то же самое?

11
задан MD Sayem Ahmed 6 July 2010 в 14:31
поделиться

3 ответа

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 был слишком мал для обработки переданного ему числа, но все же напечатал все значение.

19
ответ дан 3 December 2019 в 03:51
поделиться

Нет, поскольку поток, используемый в C, не поддерживает состояние так, как поток объект делает.

Вы должны указать, например, printf () с использованием подходящего кода форматирования.

5
ответ дан 3 December 2019 в 03:51
поделиться

Другой вариант - определить строку формата как переменную:

char print_format[] = "%5d"; printf(print_format, 42);

Приведенное выше похоже на C++ setw, в том смысле, что вы можете установить содержимое переменной перед печатью. Во многих случаях требуется динамическое форматирование вывода. Вот один из методов достижения этой цели.

3
ответ дан 3 December 2019 в 03:51
поделиться
Другие вопросы по тегам:

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