Форматированный вывод
Функции printf(...) в libc обеспечивают форматированный вывод и позволяют трансформировать аргументы. * int fprintf(FILE *stream, const char *format, ...), преобразует выводимые аргументы в соответствии с шаблоном и записывает его в stream. Формат определяется аргументом format. Функция возвращает число записанных символов или отрицательное число в случае ошибки.
format содержит два типа объектов: обычные символы и информацию, как трансформировать или форматировать аргументы.
Форматная информация должна начинаться с %, за которым следуют значения для формата, дальше идет символ для трансляции (чтобы напечатать знак %, используйте %%). Возможны следующие значения для формата: - Флаги * - Форматированный аргумент будет при печати прижат влево на своем поле. * + Каждое число будет напечатано со знаком, например, +12 или -2.32. - Пробел Если первый символ - не знак, то будет вставлен пробел. - 0 Для чисел ширина поля будет заполнена слева нулями. - #
Изменяет вывод в зависимости от трансформации для аргумента:
- Для o первое число будет 0.
- Для x или X будет напечатано в конце 0x или 0X соответственно.
- Для e, E, f, F вывод имеет десятичную точку.
- Для g или G в конце аргумента будут напечатаны нули.
- Число, указывающее минимальную ширину поля
Трансформированный аргумент печатается в поле, ширина которого не меньше, чем сам аргумент. С этим числом вы можете увеличить ширину поля. Если аргумент меньше, то оставшаяся часть поля заполняется пробелами или нулями. - Точка для отделения ширины поля и точности
- Число для точности
Возможные значения для трансформации смотри в таблице 8.1. * int printf(const char *format, ...) То же самое, что fprintf(stdout, ...). * int sprintf(char *s, const char *format, ...) То же, что и printf(...), но вывод будет записан в символьный указатель s (с последующим \0). (Вы должны захватить достаточно памяти для s.) * vprintf(const char *format, va_list arg) vfprintf(FILE *stream, const char *format, va_list arg) vsprintf(char *s, const char *format, va_list arg)
То же, что и для вышеописанных функций, только список аргументов находится в arg.