int vprintf(const char *format, va_list arg_ptr)
int vfprintf(FILE *stream, const char *format, va_list arg_ptr)
int vsprintf(char *buf, const char *format, va_list arg_ptr)
Прототип:
Описание:
Требуется наличие файла stdarg.h.
Функции vprintf(), vfprintf() и vsprintf() функционально эквивалентны функциям printf(), fprintf() и sprintf() соответственно. Различие состоит лишь в том, что список аргументов заменен на указатель на список аргументов. Этот указатель должен иметь тип va_list, определенный в stdarg.h.
Пример:
Следующий фрагмент программы показывает, как организуется вызов vprintf(). Обращение к va_start() создает указатель на аргумент изменяемой длины, указывающий на начало списка аргументов. Этот указатель должен использоваться при вызове vprintf(). Обращение к va_end() очищает указатель на аргумент изменяемой длины. #include <stdio.h> #include <stdarg.h> void print_message(char *, ...); int main(void) { print_message("Cannot open file %s","test"); return 0; } void print_message(char *format, ...) { va_list ptr; /* получение ptr */ /* инициализация ptr так, чтобы он указывал на первый аргумент после форматной строки */ va_start(ptr, format); /* вывод сообщения */ vprintf(format, ptr); va_end(ptr); }
