Udostępnij za pośrednictwem


_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l

Zapis sformatowane dane wyjściowe przy użyciu wskaźnika do listy argumentów, z możliwością, aby określić kolejność, w której używane są 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
    Miejsca przechowywania danych wyjściowych.

  • sizeInBytes
    Rozmiar buffer w znakach.

  • count
    Maksymalna liczba znaków do przechowywania w wersję UNICODE tej funkcji.

  • format
    Specyfikacja formatu.

  • argptr
    Wskaźnik do listy argumentów.

  • locale
    Ustawienia regionalne, aby użyć.

Wartość zwracana

_vsprintf_pi _vswprintf_p zwraca liczbę znaków, napisane, nie włączając kończącego znaku null lub wartości ujemne, jeśli wystąpi błąd danych wyjściowych.

Uwagi

Każda z tych funkcji ma wskaźnik do listy argumentów i następnie formatuje i zapisuje danego danych do pamięci wskazywanej przez buffer.

Funkcje te różnią się od vsprintf_s i vswprintf_s tylko w tym obsługują one pozycyjne parametrów.Aby uzyskać więcej informacji, zobacz printf_p parametry pozycyjne.

Wersje te funkcje, z _l sufiks są identyczne, z wyjątkiem, że używają oni przekazany zamiast bieżące ustawienia regionalne wątku parametr ustawień regionalnych.

Jeśli buffer lub format parametry są wskaźniki wartości NULL, jeśli liczba jest równa zero, lub jeśli ciąg formatu zawiera nieprawidłowe znaki formatowania, wywoływana jest funkcja obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje zwracają wartość -1 i errno do EINVAL.

Tekst rodzajowy rutynowych mapowania

TCHAR.Rutynowe H

_UNICODE & Nie zdefiniowano _MBCS

_MBCS, definicja

_UNICODE, definicja

_vstprintf_p

_vsprintf_p

_vsprintf_p

_vswprintf_p

_vstprintf_p_l

_vsprintf_p_l

_vsprintf_p_l

_vswprintf_p_l

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

Opcjonalna nagłówki

_vsprintf_p, _vsprintf_p_l

<stdio.h> i <stdarg.h>

<varargs.h> *

_vswprintf_p, _vswprintf_p_l

<stdio.h> lub <wchar.h> i <stdarg.h>

<varargs.h> *

* Wymagane dla zgodności v systemu UNIX.

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Przykład

// 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" );
}
  

Odpowiednik w programie .NET Framework

System::String::format

Zobacz też

Informacje

Strumień we/wy

Funkcje vprintf

Składnia specyfikacji formatu: funkcje printf i 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