Записывает форматированный вывод данных используя указатель на список параметров.
int vsprintf( char *buffer, const char *format, va_list argptr ); int vswprintf( wchar_t *buffer, const wchar_t *format, va_list argptr ); int vswprintf( wchar_t *buffer, size_t count, const wchar_t *format, va_list argptr ); // (только для C++)
|
Место хранения данных для вывода.
countМаксимальное число сохраняемых символов.
formatСпецификация формата.
argptrСписок указателя на параметры.
Функции vsprintf and vswprintf возвращают число записанных символов, включая символ завершающего нуля, или отрицательное значение, если происходит ошибка при выводе.
Каждая из этих функций получает указатель на список параметров, а затем форматирует и записывает полученные данные в память указанную при помощи buffer .
![]() |
Унифицированно-текстовые стандартные отображения
Процедура TCHAR.H |
_UNICODE & _MBCS не определены |
_MBCS определен |
_UNICODE определен |
---|---|---|---|
_vstprintf | vsprintf | vsprintf | vswprintf |
Все версии библиотек С времени исполнения программы.
// crt_vsprintf.c// Эта программа использует vsprintf для записи в буфер. // Размер буфера определяется при помощи _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 не рассчитывает + 1; // завершение '\0' buffer = malloc( len * sizeof(char) ); vsprintf( buffer, format, args ); printf( buffer ); free( buffer ); } int main( void ) { test( "%d %c %d\n", 123, '<', 456 ); test( "%s\n", "This is a string" ); } Вывод данных 123 < 456 Это строка |
Процедуры потока ввода-вывода I/O | Обзор функций vprintf | Поля спецификации формата: функции printf и wprintf | fprintf | printf | sprintf | va_arg | Процедуры времени исполнения программы и эквиваленты .NET Framework
Процедура |
Требуемый заголовочный файл |
Дополнительные заголовочные файлы |
Совместимость |
---|---|---|---|
vsprintf | <stdio.h> и <stdarg.h> | <varargs.h>* | ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP |
vswprintf | <stdio.h> или <wchar.h> и <stdarg.h> | <varargs.h>* | ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP |
* Требуется для совместимости с UNIX V.
Дополнительную информацию о совместимости см. в статье Совместимость в главе Введение.