_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l
Psát formátovaný výstup pomocí ukazatele na seznam argumentů, umožňuje určit pořadí, ve kterém jsou použity argumenty.
int _vsprintf_p(
char *buffer,
size_t sizeInBytes,
const char *format,
va_list argptr
);
int _vsprintf_p_l(
char *buffer,
size_t sizeInBytes,
const char *format,
locale_t locale,
va_list argptr
);
int _vswprintf_p(
wchar_t *buffer,
size_t count,
const wchar_t *format,
va_list argptr
);
int _vswprintf_p_l(
wchar_t *buffer,
size_t count,
const wchar_t *format,
locale_t locale,
va_list argptr
);
Parametry
buffer
Umístění úložiště pro výstup.sizeInBytes
Velikost buffer znaky.count
Maximální počet znaků pro ukládání v kódu UNICODE verze této funkce.format
Specifikace formátu.argptr
Ukazatel na seznam argumentů.locale
Národní prostředí použít.
Vrácená hodnota
_vsprintf_pa _vswprintf_p vrácení počtu znaků písemné, není včetně ukončujícím znakem null nebo zápornou hodnotu, pokud dojde k chybě výstup.
Poznámky
Každá z těchto funkcí má ukazatel na seznam argumentů a pak formáty a zapíše do paměti odkazuje dané datové buffer.
Tyto funkce se liší od vsprintf_s a vswprintf_s pouze v tom, že podporují poziční parametry.Další informace naleznete v tématu printf_p poziční parametry.
Verze těchto funkcí se _l přípony jsou shodné s výjimkou, že používají národní prostředí parametr předaný namísto aktuální podproces národní prostředí.
Pokud buffer nebo format parametry jsou ukazatele NULL, pokud je počet nula nebo pokud formátovací řetězec obsahuje neplatné formátování znaků, je vyvolána neplatný parametr popisovače, jak je popsáno v Ověření parametrů.Pokud je povoleno spuštění pokračovat, funkce vrátí -1 a errno na EINVAL.
Obecný Text rutinní mapování
TCHAR.Rutina H |
_UNICODE & _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_vstprintf_p |
_vsprintf_p |
_vsprintf_p |
_vswprintf_p |
_vstprintf_p_l |
_vsprintf_p_l |
_vsprintf_p_l |
_vswprintf_p_l |
Požadavky
Rutina |
Požadované záhlaví |
Volitelné záhlaví |
---|---|---|
_vsprintf_p, _vsprintf_p_l |
<stdio.h> a <stdarg.h> |
<varargs.h> * |
_vswprintf_p, _vswprintf_p_l |
<stdio.h> nebo <wchar.h> a <stdarg.h> |
<varargs.h> * |
* Vyžaduje kompatibilitu v systému UNIX.
Další informace o kompatibilitě, viz Compatibility v úvodu.
Příklad
// crt__vsprintf_p.c
// This program uses vsprintf_p to write to a buffer.
// The size of the buffer is determined by _vscprintf_p.
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
void example( char * format, ... )
{
va_list args;
int len;
char *buffer = NULL;
va_start( args, format );
// _vscprintf doesn't count the
// null terminating string so we add 1.
len = _vscprintf_p( format, args ) + 1;
// Allocate memory for our buffer
buffer = (char*)malloc( len * sizeof(char) );
if (buffer)
{
_vsprintf_p( buffer, len, format, args );
puts( buffer );
free( buffer );
}
}
int main( void )
{
// First example
example( "%2$d %1$c %3$d", '<', 123, 456 );
// Second example
example( "%s", "This is a string" );
}
Ekvivalent v rozhraní .NET Framework
Viz také
Referenční dokumentace
Syntaxe specifikace formátu: funkce printf a wprintf
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l