Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

vsnprintf, _vsnprintf, _vsnprintf_l, _vsnwprintf, _vsnwprintf_l

Escribir con formato salida mediante un puntero a una lista de argumentos. Versiones más seguras de estas funciones están disponibles; vea vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l.

int vsnprintf(
   char *buffer,
   size_t count,
   const char *format,
   va_list argptr 
);
int _vsnprintf(
   char *buffer,
   size_t count,
   const char *format,
   va_list argptr 
);
int _vsnprintf_l(
   char *buffer,
   size_t count,
   const char *format,
   locale_t locale,
   va_list argptr 
);
int _vsnwprintf(
   wchar_t *buffer,
   size_t count,
   const wchar_t *format,
   va_list argptr 
);
int _vsnwprintf_l(
   wchar_t *buffer,
   size_t count,
   const wchar_t *format,
   locale_t locale,
   va_list argptr 
);
template <size_t size>
int vsnprintf(
   char (&buffer)[size],
   size_t count,
   const char *format,
   va_list argptr 
); // C++ only
template <size_t size>
int _vsnprintf(
   char (&buffer)[size],
   size_t count,
   const char *format,
   va_list argptr 
); // C++ only
template <size_t size>
int _vsnprintf_l(
   char (&buffer)[size],
   size_t count,
   const char *format,
   locale_t locale,
   va_list argptr 
); // C++ only
template <size_t size>
int _vsnwprintf(
   wchar_t (&buffer)[size],
   size_t count,
   const wchar_t *format,
   va_list argptr 
); // C++ only
template <size_t size>
int _vsnwprintf_l(
   wchar_t (&buffer)[size],
   size_t count,
   const wchar_t *format,
   locale_t locale,
   va_list argptr 
); // C++ only

buffer

Ubicación de almacenamiento para el resultado.

count

Número máximo de caracteres a escribir.

format

Especificación de formato.

argptr

puntero a la lista de argumentos.

locale

la configuración regional a utilizar.

Para obtener más información, vea Especificaciones de formato.

vsnprintf ,_vsnprintf, y retorno de _vsnwprintf el número de caracteres tipo si el número de caracteres a escribir menor o igual que count; si el número de caracteres a escribir es mayor que count, se han truncado estas funciones devuelven -1 que indica que generada. El valor devuelto no incluye la null final, si se escribe uno.

Si buffer o format es NULL, o si el número es menor o igual que cero, estas funciones 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, estas funciones devuelven -1 y errno establecido en EINVAL.

Cada una de estas funciones contiene un puntero a una lista de argumentos, se da formato a los datos, y prepara a count caracteres en memoria designada por a buffer. Si hay sitio al final (es decir, si el número de caracteres a escribir es menor que count), el búfer se terminada en null.

Nota de seguridad Nota sobre la seguridad

Asegúrese de que format no es una cadena definida por el usuario. Para obtener más información, vea Para evitar las saturaciones del búfer.

Nota Nota

Para asegurarse de que haya espacio para la null final, asegúrese de que count es estrictamente menor que la longitud del búfer y inicializase el búfer como null antes de llamar a la función.

vsnprintf es idéntico a _vsnprintf. vsnprintf se incluye para la compatibilidad con el estándar ANSI; _vnsprintf se conserva por compatibilidad con versiones anteriores.

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.

En C++, estas funciones tienen sobrecargas de plantilla que se invoque según el nuevo, garantiza que sus homólogos de estas funciones. Para obtener más información, vea Sobrecargas de plantilla de seguridad.

Asignaciones de la rutina de texto genérico

rutina de TCHAR.H

_UNICODE y _MBCS no definido

_MBCS definido

_UNICODE definido

_vsntprintf

_vsnprintf

_vsnprintf

_vsnwprintf

_vsntprintf_l

_vsnprintf_l

_vsnprintf_l

_vsnwprintf_l

rutina

Encabezado necesario

encabezados opcionales

vsnprintf

<stdio.h> y <stdarg.h>

<varargs.h> *

_vsnprintf , _vsnprintf_l

<stdio.h> y <stdarg.h>

<varargs.h> *

_vsnwprintf , _vsnwprintf_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_vsnprintf.cpp
// compile with: /W3
#include <stdio.h>
#include <wtypes.h>

void FormatOutput(LPCSTR formatstring, ...) 
{
   int nSize = 0;
   char buff[10];
   memset(buff, 0, sizeof(buff));
   va_list args;
   va_start(args, formatstring);
   nSize = vsnprintf( buff, sizeof(buff) - 1, formatstring, args); // C4996
// Note: vsnprintf is deprecated; consider vsnprintf_s instead
   printf("nSize: %d, buff: %s\n", nSize, buff);
}

int main() {
   FormatOutput("%s %s", "Hi", "there");
   FormatOutput("%s %s", "Hi", "there!");
   FormatOutput("%s %s", "Hi", "there!!");
}
nSize: 8, ocultar de en: Hello allí
nSize: 9, ocultar de en: ¡Hola allí!  nSize: -1, ocultar de en: ¡Hola allí!  

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft