C / stdio.h / vfprintf
clearerr, fclose, feof, ferror, fflush, fgetc, fgetpos, fgets, fopen, fprintf, fputc, fputs, fread, freopen, fscanf, fseek, fsetpos, ftell, fwrite, getc, getcha, gets, perror, printf, putc, putchar, puts, remove, rename, rewind, scanf, setbuf, setvbuf, sprintf, sscanf, tmpfile, tmpnam, ungetc, » vfprintf, vprintf, vsprintf,
Funcion: vfprintf()
Sintaxis:
Descripcion: 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.
Ejemplo:
Sintaxis:
int vfprintf(FILE *stream, const char *formato, va_list argumentos);
Descripcion: 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.
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; }