La funzione vfwprintf () in C ++ viene utilizzata per scrivere una stringa larga formattata in un flusso di file.
La funzione vfwprintf () è definita nel file di intestazione.
prototipo vfwprintf ()
int vfwprintf (FILE * stream, const wchar_t * formato, va_list vlist);
La funzione vfwprintf () scrive la stringa ampia a cui punta il formato nel flusso del flusso di file. Il formato stringa ampia può contenere identificatori di formato che iniziano con% che vengono sostituiti dai valori delle variabili che vengono passati come lista vlist.
Parametri vfwprintf ()
- stream: flusso di file di output per scrivere il risultato.
- format: un puntatore a una stringa ampia terminata da null che viene scritta nel flusso. Consiste di caratteri insieme a identificatori di formato opzionali che iniziano con%. Gli identificatori di formato vengono sostituiti dai valori delle rispettive variabili che seguono il formato.
L'identificatore di formato ha le seguenti parti:- Un segno di% iniziale
- Flag: uno o più flag opzionali che modificano il comportamento di conversione.
- -: Giustifica a sinistra il risultato all'interno del campo. Per impostazione predefinita è giustificato a destra.
- +: Il segno del risultato viene aggiunto all'inizio del valore, anche in caso di risultati positivi.
- Spazio: se non è presente alcun segno, viene aggiunto uno spazio all'inizio del risultato.
- #: Viene eseguita una forma alternativa di conversione.
- 0: viene utilizzato per numeri interi e in virgola mobile. Gli zeri iniziali vengono utilizzati per riempire i numeri anziché lo spazio.
- Larghezza: un valore intero * o facoltativo utilizzato per specificare il campo di larghezza minima.
- Precisione: un campo opzionale costituito da un file. seguito da * o intero o niente per specificare la precisione.
- Lunghezza: un modificatore di lunghezza opzionale che specifica la dimensione dell'argomento.
- Specifier: un identificatore del formato di conversione. Gli identificatori di formato disponibili sono i seguenti:
Identificatore di formato Descrizione % Stampe% c Scrive un singolo carattere S Scrive una stringa di caratteri do i Converte un intero con segno in una rappresentazione decimale o Converte un intero senza segno in una rappresentazione ottale X o x Converte un intero senza segno in una rappresentazione esadecimale u Converte un intero senza segno in una rappresentazione decimale F o f Converte il numero a virgola mobile nella rappresentazione decimale E o e Converte il numero a virgola mobile nella notazione esponente decimale A o a Converte il numero a virgola mobile nell'esponente esadecimale G o g Converte il numero a virgola mobile in notazione esponente decimale o decimale n Restituisce il numero di caratteri scritti finora da questa chiamata alla funzione. Il risultato viene scritto nel valore puntato dall'argomento p Scrive una sequenza di caratteri definita dall'implementazione che definisce un puntatore.
Quindi il formato generale dell'identificatore di formato è:Identificatore% (flag) (larghezza) (. precisione) (lunghezza)
- vlist: un elenco di argomenti contenenti i dati da scrivere.
vfwprintf () Restituisce il valore
- In caso di successo, la funzione vfwprintf () restituisce il numero di caratteri larghi scritti.
- In caso di fallimento restituisce un valore negativo.
Esempio: come funziona la funzione 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; )
Quando esegui il programma, verrà scritto quanto segue in example.txt:
Alcune lettere greche Eta: η Theta: θ Iota: ι Kappa: κ Lamda: λ