vfprintf, vfwprintf
Nach oben zu stdio.h - Index
Header-Datei
stdio.h
Kategorie
Eingabe-/Ausgaberoutinen
Prototyp
int vfprintf(FILE *stream, const char *format, va_list arglist);
int vfwprintf(FILE *stream, const wchar_t *format, va_list arglist);
Beschreibung
Schreibt eine formatierte Ausgabe in einen Stream.
Die v...printf-Funktionen können als alternative Eintrittspunkte für die ...printf-Funktionen betrachtet werden. Sie verhalten sich genau wie ihre ...printf-Entsprechungen, akzeptieren jedoch einen Zeiger auf eine Argumentliste statt der Argumentliste selbst.
Einzelheiten zu den Formatbezeichnern finden Sie unter printf-Formatbezeichner.
vfprintf akzeptiert eine Reihe von Argumenten, ordnet sie den Formatbezeichnern in dem String zu, auf den format zeigt, und schreibt die so formatierten Daten in einen Stream. Es müssen so viele Formatbezeichner wie Argumente vorhanden sein.
Rückgabewert
Wenn erfolgreich, gibt vfprintf gibt die Anzahl der ausgegebenen Bytes zurück.
Bei einem Fehler wird EOF zurückgegeben.
Beispiel
#include <stdio.h> #include <stdlib.h> #include <stdarg.h> FILE *fp; int vfpf(char *fmt, ...) { va_list argptr; int cnt; va_start(argptr, fmt); cnt = vfprintf(fp, fmt, argptr); va_end(argptr); return(cnt); } int main(void) { int inumber = 30; float fnumber = 90.0; char string[4] = "abc"; fp = tmpfile(); if (fp == NULL) { perror("tmpfile() call"); exit(1); } vfpf("%d %f %s", inumber, fnumber, string); rewind(fp); fscanf(fp,"%d %f %s", &inumber, &fnumber, string); printf("%d %f %s\n", inumber, fnumber, string); fclose(fp); return 0; }
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
vfprintf |
+ |
+ |
+ |
+ |
vfwprintf |
+ |
+ |
+ |