Funkce vfwprintf () v C ++ se používá k zápisu formátovaného širokého řetězce do proudu souboru.
Funkce vfwprintf () je definována v hlavičkovém souboru.
prototyp vfwprintf ()
int vfwprintf (SOUBOR * stream, formát const wchar_t *, va_list vlist);
Funkce vfwprintf () zapíše široký řetězec, na který ukazuje formát, do proudu datového proudu souboru. Formát širokého řetězce může obsahovat specifikátory formátu začínající na%, které jsou nahrazeny hodnotami proměnných, které jsou předávány jako seznam vlist.
vfwprintf () Parametry
- stream: Výstupní souborový proud pro zápis výsledku.
- format: Ukazatel na null ukončený široký řetězec, který je zapsán do streamu. Skládá se ze znaků a volitelných specifikátorů formátu začínajících na%. Specifikátory formátu jsou nahrazeny hodnotami příslušných proměnných, které následují po formátu.
Specifikátor formátu má následující části:- Přední znak%
- Příznaky: Volitelný jeden nebo více příznaků, které upravují chování převodu.
- -: Vlevo zarovná výsledek v poli. Ve výchozím nastavení je to správně zarovnané.
- +: Znaménko výsledku je připojeno na začátek hodnoty, a to i pro pozitivní výsledky.
- Mezera: Pokud není žádná značka, na začátek výsledku se připojí mezera.
- #: Je provedena alternativní forma převodu.
- 0: Používá se pro celé číslo a číslo s plovoucí desetinnou čárkou. K vyplnění čísel místo mezery se používají úvodní nuly.
- Šířka: Volitelná * nebo celočíselná hodnota použitá k určení pole minimální šířky.
- Přesnost: Volitelné pole skládající se z a. následuje * nebo celé číslo nebo nic k určení přesnosti.
- Délka: Volitelný modifikátor délky, který určuje velikost argumentu.
- Specifikátor: Specifikátor formátu převodu. Dostupné specifikátory formátu jsou následující:
Specifikátor formátu Popis % Tisky% C Zapíše jeden znak s Zapíše řetězec znaků d nebo i Převede celé číslo se znaménkem na desítkové vyjádření Ó Převede celé číslo bez znaménka na osmičkovou reprezentaci X nebo x Převede celé číslo bez znaménka na šestnáctkové vyjádření u Převede celé číslo bez znaménka na desítkové vyjádření F nebo f Převede číslo s plovoucí desetinnou čárkou na desítkové vyjádření E nebo e Převede číslo s plovoucí desetinnou čárkou na desítkovou notaci exponentu A nebo a Převede číslo s plovoucí desetinnou čárkou na hexadecimální exponent G nebo g Převede číslo s plovoucí desetinnou čárkou na desítkovou nebo desítkovou notaci n Vrátí počet znaků doposud zapsaných tímto voláním funkce. Výsledek se zapíše na hodnotu, na kterou odkazuje argument p Zapíše posloupnost znaků definovanou implementací definující ukazatel.
Obecný formát specifikátoru formátu je tedy:Specifikátor% (příznaky) (šířka) (. přesnost) (délka)
- vlist: Seznam argumentů obsahujících data k zápisu.
vfwprintf () Vrátí hodnotu
- Pokud bude úspěšná, funkce vfwprintf () vrátí počet zapsaných širokých znaků.
- Při selhání vrátí zápornou hodnotu.
Příklad: Jak funguje funkce vfwprintf ()?
#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; )
Když spustíte program, do example.txt se zapíše následující:
Některá řecká písmena Eta: η Theta: θ Iota: ι Kappa: κ Lamda: λ