====== vfprintf() ====== ''vfprintf()'' ist in der ''[[c:lib:stdio:start|stdio]]'' definiert, die in C über ''stdio.h'', bzw in C++ über ''cstdio'' eingebunden wird. ===== Funktion ===== ''vfprintf()'' wird dazu verwendet, um einen String aus einem [[FormatString]] zu erzeugen und anschließend auf einem Ausgabestream (''[[FILE]]'') auszugeben.\\ ''vfprintf()'' kann als Kombination von ''[[vsprintf()]]'' und ''[[fputs()]]'' verstanden werden. ===== Signatur ===== #include int vfprintf( FILE * file, char const * formatString, va_list args ); **file**: [[file|FileHandle]], das die Datei beschreibt, in die geschrieben wird. (siehe [[fopen()]]) \\ **formatString**: [[Formatstring]], der beschreibt, wie der String zusammengesetzt wird \\ **args**: Eine Liste von Argumenten \\ \\ **Return Value**: Die Länge des Strings im Erfolgsfall (das angehängte Nullbyte wird nicht mitgezählt) oder eine negative Zahl im Fehlerfall. ===== Fehlerquellen ===== - ===== Beispiel ===== #include #include #include #include #include int error( FILE * file, char const * format, ... ) { va_list args; int n; fputs( "Error: ", file ); va_start( args, format ); n = vfprintf( file, format, args ); fputs( "\n", file ); va_end( args ); return n; } int main (void) { char const * filename = "nicht-existierende-datei"; FILE * file = fopen( filename, "r+" ); if( !file ) error( stdout, "Could not open '%s'", filename ); else fclose( file ); return EXIT_SUCCESS; } **Ausgabe**: Error: Could not open 'nicht-existierende-datei' ===== siehe auch ===== [[c:lib:stdio:start|stdio]]: [[c:lib:stdio:vprintf()]], [[c:lib:stdio:fprintf()]], [[c:lib:stdio:vsprintf()]], [[c:lib:stdio:sprintf()]], [[c:lib:stdio:fputs()]], [[c:lib:stdio:fwrite()]] \\ [[c:lib:stdarg:start|stdarg]]: [[c:lib:stdarg:va_list]], [[c:lib:stdarg:va_start]], [[c:lib:stdarg:va_end]]