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
принимает указатель на список аргументов, а их аналоги — сам список аргументов.
Эти функции форматируют данные для вывода в назначение, как описано ниже.
Функция | Функция-аналог | Назначение выходных данных | Проверка параметров | Поддержка позиционных параметров |
---|---|---|---|---|
_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
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по