Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Каждая из функций vprintf принимает указатель на список аргументов, а затем форматирует и записывает указанные данные в определенное назначение. Функции различаются несколькими способами: в проверке параметров функции принимают однобайтовые или широкие символьные строки, назначение выходных данных и поддержку указания параметров заказа используются в строке формата.
_vcprintf, _vcwprintf
vfprintf, vfwprintf
_vfprintf_p, , _vfprintf_p_l_vfwprintf_p_vfwprintf_p_l
vfprintf_s, , _vfprintf_s_lvfwprintf_s_vfwprintf_s_l
vprintf, vwprintf
_vprintf_p, , _vprintf_p_l_vwprintf_p_vwprintf_p_l
vprintf_s, , _vprintf_s_lvwprintf_s_vwprintf_s_l
_vscprintf, , _vscprintf_l_vscwprintf_vscwprintf_l
_vsnprintf, , _vsnwprintfvsprintfvswprintf
_vsprintf_p, , _vsprintf_p_l_vswprintf_p_vswprintf_p_l
vsprintf_s, , _vsprintf_s_lvswprintf_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_lfwprintf_fwprintf_l
printf, , _printf_lwprintf_wprintf_l
sprintf, , _sprintf_lswprintf, _swprintf_l__swprintf_l
va_arg, , va_copyva_endva_start