Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l

Salida con formato escribir mediante un puntero a una lista de argumentos, con la capacidad de especificar el orden en el que se utilizan los argumentos.

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 
);

buffer

Ubicación de almacenamiento para el resultado.

sizeInBytes

Tamaño de buffer en caracteres.

count

Número máximo de caracteres a almacenar, en la versión de UNICODE de esta función.

format

Especificación de formato.

argptr

puntero a la lista de argumentos.

locale

la configuración regional a utilizar.

_vsprintf_p y _vswprintf_p devuelven el número de caracteres y, sin incluir el carácter null de terminación, o un valor negativo si un error de salida aparece.

Cada una de estas funciones contiene un puntero a una lista de argumentos, y después los formatos y escribe los datos especificados en memoria designada por a buffer.

Estas funciones son diferentes de vsprintf_s y de vswprintf_s sólo en que admiten parámetros posicionales. Para obtener más información, vea parámetros posicionales De printf_p.

Las versiones de estas funciones con el sufijo de _l son idénticas salvo que utilizan el parámetro locale pasado en lugar de la configuración regional del subproceso actual.

Si los parámetros de buffer o de format son punteros nulos, si el número es cero, o si la cadena de formato contiene caracteres de formato no válidos, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, las funciones devuelven -1 y errno establecido en EINVAL.

Asignaciones de la rutina de texto genérico

rutina de TCHAR.H

_UNICODE y _MBCS no definido

_MBCS definido

_UNICODE definido

_vstprintf_p

_vsprintf_p

_vsprintf_p

_vswprintf_p

_vstprintf_p_l

_vsprintf_p_l

_vsprintf_p_l

_vswprintf_p_l

rutina

Encabezado necesario

encabezados opcionales

_vsprintf_p , _vsprintf_p_l

<stdio.h> y <stdarg.h>

<varargs.h> *

_vswprintf_p , _vswprintf_p_l

<stdio.h> o <wchar.h> , y <stdarg.h>

<varargs.h> *

* Necesario para la compatibilidad de UNIX V.

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

// 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" );
}
123 < 456
esto es una cadena

Adiciones de comunidad

AGREGAR
Mostrar: