A vfwprintf () függvény a C ++ nyelven egy formázott széles karaktersorozat írására szolgál egy fájlfolyamba.
A vfwprintf () függvény a fejlécfájlban van meghatározva.
vfwprintf () prototípus
int vfwprintf (FÁJL * adatfolyam, const wchar_t * formátum, va_list vlist);
A vfwprintf () függvény a formátum által jelzett széles karakterláncot írja a fájlfolyamba. A széles karaktersorozat formátuma tartalmazhat% -al kezdődő formátummeghatározókat, amelyek helyébe a listavlistaként átadott változók értékei lépnek.
vfwprintf () Paraméterek
- stream: Kimeneti fájlfolyam az eredmény megírásához.
- formátum: Mutató egy null végződésű széles karakterláncra, amelyet streamelni írnak. Karakterekből áll, és opcionális formátum-specifikátorokkal kezdődik, amelyek% -kal kezdődnek. A formátum-specifikátorokat a megfelelő változók formátumot követő értéke váltja fel.
A formátummeghatározó a következő részekkel rendelkezik:- Vezető% jel
- Jelölések: Opcionálisan egy vagy több jelölés, amely módosítja a konverzió viselkedését.
- -: Bal igazolja az eredményt a mezőn belül. Alapértelmezés szerint helyesen indokolt.
- +: Az eredmény jele az érték elejéhez van kötve, még pozitív eredmények esetén is.
- Szóköz: Ha nincs előjel, akkor az eredmény elejéhez szóköz tartozik.
- #: A konverzió alternatív formáját hajtják végre.
- 0: Egész számra és lebegőpontos számra használják. A nullák a szóköz helyett a számok kitöltésére szolgálnak.
- Szélesség: Opcionális * vagy egész érték, amelyet a minimális szélesség mező megadásához használnak.
- Pontosság: Választható mező, amely a. * vagy egész szám, vagy semmi a pontosság megadásához.
- Hossz: Opcionális hosszmódosító, amely megadja az argumentum méretét.
- Specifier: Konverziós formátum-specifikáló. A rendelkezésre álló formátum-meghatározók a következők:
Formátummeghatározó Leírás % Nyomat% c Egyetlen karaktert ír s Karakterláncot ír d vagy i Az aláírt egész számot decimális ábrázolássá alakítja o Az előjel nélküli egész számot oktális ábrázolássá alakítja X vagy x Aláíratlan egész számot hexadecimális ábrázolássá alakítja u Az aláíratlan egész számot decimális ábrázolássá alakítja F vagy f A lebegőpontos számot tizedesre konvertálja E vagy e A lebegőpontos számot decimális exponens jelöléssé alakítja A vagy a A lebegőpontos számot hexadecimális kitevővé konvertálja G vagy g A lebegőpontos számot decimális vagy decimális exponens jelöléssé alakítja n Visszaadja a függvénynek a hívás által eddig írt karakterek számát. Az eredményt arra az értékre írják, amelyre az argumentum rámutat o Ír egy megvalósítás által definiált karaktersorozatot, amely meghatároz egy mutatót.
Tehát a formátummeghatározó általános formátuma:% (zászlók) (szélesség) (. pontosság) (hossz) specifikátor
- vlist: Az írandó adatokat tartalmazó argumentumok listája.
vfwprintf () Visszatérési érték
- Sikeres esetben az vfwprintf () függvény visszaadja az írt széles karakterek számát.
- Meghibásodás esetén negatív értéket ad vissza.
Példa: Hogyan működik az vfwprintf () függvény?
#include #include #include void write(const wchar_t *fmt,… ) ( va_list args; va_start(args, fmt); vfwprintf(fmt, args); va_end(args); ) int main () ( wchar_t desc(5)(10) = (L"Eta",L"Theta",L"Iota",L"Kappa",L"Lamda"); int x = 0; setlocale(LC_ALL, "en_US.UTF-8"); wprintf(L"Some Greek Letters"); for (wchar_t i=L'u03b7'; i<=L'u03bb'; i++) ( write(L"%ls : %lc", desc(x), i); x++; ) return 0; )
A program futtatásakor a következőket írjuk az example.txt fájlba:
Néhány görög levél Eta: η Theta: θ Iota: ι Kappa: κ Lamda: λ