Compartir a través de


_vcprintf_p, _vcprintf_p_l, _vcwprintf_p, _vcwprintf_p_l

Escribe dio formato la salida en la consola mediante un puntero a una lista de argumentos, y admiten parámetros posicionales en la cadena de formato.

Importante

Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución.Para obtener más información, vea Funciones de CRT no admitidas con /ZW.

int _vcprintf_p(
   const char* format,
   va_list argptr
);
int _vcprintf_p_l(
   const char* format,
   locale_t locale,
   va_list argptr
);
int _vcwprintf_p(
   const wchar_t* format,
   va_list argptr
);
int _vcwprintf_p_l(
   const wchar_t* format,
   locale_t locale,
   va_list argptr
);

Parámetros

  • format
    La especificación de formato.

  • argptr
    Un puntero a una lista de argumentos.

  • locale
    Configuración regional que se va a usar.

Para obtener más información, vea Sintaxis de especificación de formato: Funciones printf y wprintf.

Valor devuelto

El número de caracteres escrito, o un valor negativo si un error de salida aparece. Si format es un puntero nulo, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, errno se establece en EINVAL y se devuelve -1.

Comentarios

Cada una de estas funciones contiene un puntero a una lista de argumentos, y después se utiliza la función de _putch para dar formato y escribir los datos especificados en la consola. (_vcwprintf_p utiliza _putwch en lugar de _putch. _vcwprintf_p es la versión con caracteres anchos de _vcprintf_p. Toma una cadena de caracteres como argumento.)

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

Cada argument (si existe) se convierte y generado según la especificación correspondiente de formato en format. La especificación de formato admite parámetros posicionales para poder especificar el orden en el que los argumentos se utilizan en la cadena de formato. Para obtener más información, vea printf_p (Parámetros de posición).

Estas funciones no se traducen los caracteres de avance de línea a combinaciones de fuentes de la retorno- línea de carro (CR-LF) cuando se generan.

Nota de seguridadNota sobre la seguridad

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

Estas funciones validan el puntero de la entrada y la cadena de formato. Si format o argument es NULL, o si la cadena de formato contiene caracteres de formato no válidos, 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 establecen errno en EINVAL.

Asignaciones de rutina de texto genérico

Rutina Tchar.h

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_vtcprintf_p

_vcprintf_p

_vcprintf_p

_vcwprintf_p

_vtcprintf_p_l

_vcprintf_p_l

_vcprintf_p_l

_vcwprintf_p_l

Requisitos

Rutina

Encabezado necesario

_vcprintf_p, _vcprintf_p_l

<conio.h> y <stdarg.h>

_vcwprintf_p, _vcwprintf_p_l

<conio.h> y <stdarg.h>

Para obtener más información de compatibilidad, vea Compatibilidad.

Ejemplo

// crt_vcprintf_p.c
// compile with: /c
#include <conio.h>
#include <stdarg.h>

// An error formatting function that's used to print to the console.
int eprintf(const char* format, ...)
{
  va_list args;
  va_start(args, format);
  return _vcprintf_p(format, args);
}

int main()
{
   int n = eprintf("parameter 2 = %2$d; parameter 1 = %1$s\r\n",
      "one", 222);
   _cprintf_s("%d characters printed\r\n");
}
  

Vea también

Referencia

E/S de consola y de puerto

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

va_arg, va_copy, va_end, va_start

printf_p (Parámetros de posición)