stdio.h
Función vfprintf ANSI C
int vfprintf(FILE *stream, const char *formato, va_list argumentos);
Esta función es equivalente a fprintf, con la lista de argumentos de variables reemplazado por argumentos, que es inicializado por la macro va_start (y posiblemente por llamadas posteriores a va_arg. La función vfprintf no invoca la macro va_end.
Valor de retorno:
La función vfprintf retorna el número de caracteres transmitidos, o un valor negativo si se produce un error de salida.
Ejemplo:
#include <stdio.h> #include <stdarg.h> int mi_vfprintf( FILE *stream, const char *formato, ... ) { va_list listaPtr; int resultado=0; va_start( listaPtr, formato ); resultado = vfprintf( stream, formato, listaPtr ); va_end( listaPtr ); return resultado; } int main() { FILE *fichero; char nombre[11] = "datos6.dat"; unsigned int i; fichero = fopen( nombre, "w" ); printf( "Fichero: %s -> ", nombre ); if( fichero ) printf( "creado (ABIERTO)\n" ); else { printf( "Error (NO ABIERTO)\n" ); return 1; } mi_vfprintf( fichero, "Esto es un ejemplo de usar la funcion \'vfprintf\'\n" ); mi_vfprintf( fichero, "\t 2\t 3\t 4\n" ); mi_vfprintf( fichero, "x\tx\tx\tx\n\n" ); for( i=1; i<=10; i++ ) mi_vfprintf( fichero, "%d\t%d\t%d\t%d\n", i, i*i, i*i*i, i*i*i*i ); mi_vfprintf( stdout, "Datos guardados en el fichero: %s\n", nombre ); if( !fclose(fichero) ) printf( "Fichero cerrado\n" ); else { printf( "Error: fichero NO CERRADO\n" ); return 1; } return 0; }