vprintf ()- Imprimir datos de argumentos
Formato
#include <stdarg.h>
#include <stdio.h>
int vprintf(const char *format, va_list arg_ptr);Nivel de idioma
ANSI
De hebra segura
Sí
Sensible al entorno local
El comportamiento de esta función puede verse afectado por las categorías LC_CTYPE y LC_NUMERIC del entorno local actual. El comportamiento también puede verse afectado por la categoría LC_UNI_CTYPE del entorno local actual si se especifica LOCALETYPE (*LOCALEUCS2) o LOCALETYPE (*LOCALEUTF) en el mandato de compilación. Para obtener más información, consulte Descripción de CCSID y entornos locales.
Descripción
La función vprintf() formatea e imprime una serie de caracteres y valores en stdout. La función vprintf() funciona igual que la función printf(), excepto que arg_ptr apunta a una lista de argumentos cuyo número puede variar de una llamada a otra en el programa. Estos argumentos se deben inicializar mediante va_start para cada llamada. Por el contrario, la función printf() puede tener una lista de argumentos, pero el número de argumentos de dicha lista se arregla al compilar el programa.
La función vprintf() convierte cada entrada de la lista de argumentos según el especificador de formato correspondiente en formato. El formato tiene el mismo formato y función que la serie de formato para la función printf() .
Valor de retorno
Si es satisfactorio, la función vprintf() devuelve el número de bytes escritos en stdout. Si se produce un error, la función vprintf() devuelve un valor negativo. El valor de errno se puede establecer en ETRUNC.
Ejemplo
stdout.#include <stdarg.h>
#include <stdio.h>
void vout(char *fmt, ...);
char fmt1 [] = "%s %s %s %s %s \n";
int main(void)
{
FILE *stream;
stream = fopen("mylib/myfile", "w");
vout(fmt1, "Mon", "Tues", "Wed", "Thurs", "Fri");
}
void vout(char *fmt, ...)
{
va_list arg_ptr;
va_start(arg_ptr, fmt);
vprintf(fmt, arg_ptr);
va_end(arg_ptr);
}
/****************** Output should be similar to: ****************
Mon Tues Wed Thurs Fri
*/