vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l
Форматированный вывод записью с помощью указатель на список аргументов.Эти версии vsprintf, _vsprintf_l, vswprintf, _vswprintf_l, __vswprintf_l со службами расширений безопасности, как описано в разделе Средства безопасности в CRT.
int vsprintf_s(
char *buffer,
size_t numberOfElements,
const char *format,
va_list argptr
);
int _vsprintf_s_l(
char *buffer,
size_t numberOfElements,
const char *format,
locale_t locale,
va_list argptr
);
int vswprintf_s(
wchar_t *buffer,
size_t numberOfElements,
const wchar_t *format,
va_list argptr
);
int _vswprintf_s_l(
wchar_t *buffer,
size_t numberOfElements,
const wchar_t *format,
locale_t locale,
va_list argptr
);
template <size_t size>
int vsprintf_s(
char (&buffer)[size],
const char *format,
va_list argptr
); // C++ only
template <size_t size>
int vswprintf_s(
wchar_t (&buffer)[size],
const wchar_t *format,
va_list argptr
); // C++ only
Параметры
buffer
Место хранения для вывода.numberOfElements
Размер buffer в символах.format
Спецификация формата.argptr
Указатель на список аргументов.locale
Языковой стандарт, который необходимо использовать.
Возвращаемое значение
vsprintf_s и vswprintf_s возвращает число записанных символов, не включая конечное нуль-символ или отрицательное значение, если происходит ошибка вывода.If buffer OR format является указателем null, если число равно нулю, либо если строка форматирования содержит недопустимые символы форматирования параметра недопустимый обработчик вызывается, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то функции возвращают -1 и задают errno В EINVAL.
Дополнительные сведения об этих и других кодах ошибок см. в разделе _doserrno, errno, _sys_errlist и _sys_nerr.
Заметки
Каждая из этих функций принимает указатель на список аргументов, а затем форматы и записывает заданный данных в памяти, на by buffer.
vswprintf_s соответствует стандарту ISO для c# vswprintf, который требует второго параметра countтипа size_t.
Эти функции отличаются от версий non-безопасных только тем, что безопасные версии поддерживают позиционированных параметров.Дополнительные сведения см. в разделе позиционных параметров printf_p.
Версии этих функций с _l суффикс идентичны за исключением того, что они используют параметр, переданный вместо языкового стандарта текущего языкового стандарта потока.
В C++ с помощью этих функций упрощает перегрузками шаблона; перегруженные методы могут определять длина буфера, автоматически (что устраняет необходимость указать аргумент size) и они могут автоматически заменять старые, non-безопасные функции с их новыми, безопасный копиями.Дополнительные сведения см. в разделе Предоставляйте перегруженный шаблона.
Сопоставления подпрограммы Родов-Текста
Подпрограмма TCHAR.H |
_MBCS не заданные _UNICODE & |
Указанный символ _MBCS |
Указанный _UNICODE |
---|---|---|---|
_vstprintf_s |
vsprintf_s |
vsprintf_s |
vswprintf_s |
_vstprintf_s_l |
_vsprintf_s_l |
_vsprintf_s_l |
_vswprintf_s_l |
Требования
Процедура |
Обязательный заголовок |
Необязательные заголовки |
---|---|---|
vsprintf_s, _vsprintf_s_l |
<stdio.h> и <stdarg.h> |
<varargs.h>* |
vswprintf_s, _vswprintf_s_l |
<stdio.h> OR <wchar.h>и <stdarg.h> |
<varargs.h>* |
* Требуется для совместимости UNIX v.
Дополнительные сведения о совместимости см. Совместимость во введении.
Пример
// crt_vsprintf_s.c
// This program uses vsprintf_s to write to a buffer.
// The size of the buffer is determined by _vscprintf.
#include <stdlib.h>
#include <stdarg.h>
void test( char * format, ... )
{
va_list args;
int len;
char * buffer;
va_start( args, format );
len = _vscprintf( format, args ) // _vscprintf doesn't count
+ 1; // terminating '\0'
buffer = malloc( len * sizeof(char) );
vsprintf_s( buffer, len, format, args );
puts( buffer );
free( buffer );
}
int main( void )
{
test( "%d %c %d", 123, '<', 456 );
test( "%s", "This is a string" );
}
Эквивалент в .NET Framework
См. также
Ссылки
Синтаксис описания формата: функции printf и wprintf
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l