vprintfФункции

Каждая из функций vprintf принимает указатель на список аргументов, а затем форматирует и записывает указанные данные в определенное назначение. Функции различаются несколькими способами: в проверке параметров функции принимают однобайтовые или широкие символьные строки, назначение выходных данных и поддержку указания параметров заказа используются в строке формата.

_vcprintf, _vcwprintf
vfprintf, vfwprintf
_vfprintf_p, _vfprintf_p_l, _vfwprintf_p, _vfwprintf_p_l
vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l
vprintf, vwprintf
_vprintf_p, _vprintf_p_l, _vwprintf_p, _vwprintf_p_l
vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l
_vscprintf, _vscprintf_l, _vscwprintf, _vscwprintf_l
_vsnprintf, _vsnwprintfvsprintf, vswprintf
_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l
vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l

Замечания

Функции vprintf выполняют те же действия, что и перечисленные в следующей таблице аналоги. Но при этом каждая функция vprintf принимает указатель на список аргументов, а их аналоги — сам список аргументов.

Эти функции форматируют данные для вывода в назначение, как описано ниже.

Функция Функция-аналог Назначение выходных данных Проверка параметров Поддержка позиционных параметров
_vcprintf _cprintf console Проверка значений null. no
_vcwprintf _cwprintf console Проверка значений null. no
vfprintf fprintf stream Проверка значений null. no
vfprintf_p fprintf_p stream Проверка значений null и допустимого формата. yes
vfprintf_s fprintf_s stream Проверка значений null и допустимого формата. no
vfwprintf fwprintf stream Проверка значений null. no
vfwprintf_p fwprintf_p stream Проверка значений null и допустимого формата. yes
vfwprintf_s fwprintf_s stream Проверка значений null и допустимого формата. no
vprintf printf stdout Проверка значений null. no
vprintf_p printf_p stdout Проверка значений null и допустимого формата. yes
vprintf_s printf_s stdout Проверка значений null и допустимого формата. no
vwprintf wprintf stdout Проверка значений null. no
vwprintf_p wprintf_p stdout Проверка значений null и допустимого формата. yes
vwprintf_s wprintf_s stdout Проверка значений null и допустимого формата. no
vsprintf sprintf память, на которую указывает buffer Проверка значений null. no
vsprintf_p sprintf_p память, на которую указывает buffer Проверка значений null и допустимого формата. yes
vsprintf_s sprintf_s память, на которую указывает buffer Проверка значений null и допустимого формата. no
vswprintf swprintf память, на которую указывает buffer Проверка значений null. no
vswprintf_p swprintf_p память, на которую указывает buffer Проверка значений null и допустимого формата. yes
vswprintf_s swprintf_s память, на которую указывает buffer Проверка значений null и допустимого формата. no
_vscprintf _vscprintf память, на которую указывает buffer Проверка значений null. no
_vscwprintf _vscwprintf память, на которую указывает buffer Проверка значений null. no
_vsnprintf _snprintf память, на которую указывает buffer Проверка значений null. no
_vsnwprintf _snwprintf память, на которую указывает buffer Проверка значений null. no

Аргумент argptr имеет тип va_list, который определен в VARARGS.H и STDARG.H. Переменная argptr должна быть инициализирована va_start и может быть повторно инициализирована последующими va_arg вызовами. argptr Затем указывает на начало списка аргументов, которые преобразуются и передаются для вывода в соответствии с соответствующими спецификациями в аргументеformat. format имеет ту же форму и функцию, что format и аргумент для printf. Ни один из этих функций не вызывается va_end. Более полное описание каждой функции vprintf вы найдете в описании соответствующей функции-аналога, указанной в таблице выше.

_vsnprintf отличается от vsprintf того, что он записывает не более count байтов bufferв .

Версии этих функций с инфиксом w в имени — это широко символьные версии соответствующих функций без infix; в каждой из этих расширенных символьных функций buffer и format являются строками широкого символа. Во всем остальном двухбайтовые версии функций работают полностью так же, как и соответствующие функции для однобайтовой кодировки.

Версии этих функций с суффиксами _s и _p суффиксами являются более безопасными версиями. Эти версии проверяют строки формата. Они создают исключение, если строка форматирования не является хорошо сформированной (например, если используются недопустимые символы форматирования).

Версии этих функций с суффиксом _p позволяют указать порядок, в котором указанные аргументы заменяются строкой формата. Дополнительные сведения см. в разделе Позиционные параметры printf_p.

Для vsprintf, vswprintfи _vsnwprintf, _vsnprintf если копирование происходит между строками, которые перекрываются, поведение не определено.

Важно!

Убедитесь, что format не является строкой, определяемой пользователем. Дополнительные сведения см. в разделе "Избегание переполнения буфера". Если используется безопасная версия этих функций ( _s либо суффиксы _p ), строка формата, предоставляемая пользователем, может активировать недопустимое исключение параметров, если указанная пользователем строка содержит недопустимые символы форматирования.

См. также

Потоковый ввод-вывод
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
va_arg, va_copy, va_end, va_start