Sdílet prostřednictvím


_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

System::String::Format

Viz také

Referenční dokumentace

Proud I/O

Funkce vprintf

Syntaxe specifikace formátu: funkce printf a wprintf

fprintf, _fprintf_l, fwprintf, _fwprintf_l

printf, _printf_l, wprintf, _wprintf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

va_arg, va_end, va_start