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
, , _vsnwprintf
vsprintf
vswprintf
_vsprintf_p
, , _vsprintf_p_l
_vswprintf_p
_vswprintf_p_l
vsprintf_s
, , _vsprintf_s_l
vswprintf_s
_vswprintf_s_l
Замечания
Функции vprintf
выполняют те же действия, что и перечисленные в следующей таблице аналоги. Но при этом каждая функция vprintf
принимает указатель на список аргументов, а их аналоги — сам список аргументов.
Эти функции форматируют данные для вывода в назначение, как описано ниже.
Function | Функция-аналог | Назначение выходных данных | Проверка параметров | Поддержка позиционных параметров |
---|---|---|---|---|
_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