L'oggetto wclog in C ++ è un oggetto della classe wostream. È associato al flusso di output degli errori standard C stderr.
Differenza tra clog e wclog
clog users char (narrow character) come tipo di carattere. Può essere utilizzato per i caratteri ASCII e ANSI.
Per l'internazionalizzazione, abbiamo bisogno di stringhe Unicode che non si adattano a char. wclog utilizza wchar_t (carattere ampio) e utilizzabile per i caratteri Unicode.
Differenza tra wcerr e wclog
wclog
e wcerr
, entrambi sono associati a stderr
, ma differisce da wcerr
nel senso che i flussi in wclog
ingresso sono bufferizzati e non collegati automaticamente wcout
.
L'output bufferizzato è più efficiente dell'output senza buffer. Nel caso dell'output bufferizzato, tutto l'output viene salvato in una variabile e scritto su disco tutto in una volta. Per l'output senza buffer, dobbiamo continuare a scrivere su disco.
L'output memorizzato nel buffer non è preferito per gli errori critici. In caso di arresto anomalo del sistema, può verificarsi una situazione in cui l'output era ancora nel buffer e non è stato scritto su disco e il messaggio di errore non può essere recuperato. Non possiamo permetterci di perdere i dati di errore in caso di crash del sistema, quindi continuiamo a scrivere gli errori critici sul disco anche se è più lento.
wclog
è comunemente usato per scopi di registrazione. Per la registrazione di eventi non critici, l'efficienza è più importante, quindi si preferisce wclog wcerr
.
dichiarazione wclog
extern ostream wclog;
È definito nel file di intestazione "> file di intestazione.
Si wclog
garantisce che l' oggetto venga inizializzato durante o prima della prima costruzione di un oggetto di tipo ios_base::Init
. wclog
non è legato a nessun altro flusso.
Il "wc" in si wclog
riferisce a "carattere ampio", quindi wclog
significa "registro caratteri ampio". Il
wclog
oggetto viene utilizzato insieme all'operatore di inserimento (<<) per visualizzare un flusso di caratteri. La sintassi generale è:
wclog << varName;
o
wclog << "Some String";
L'operatore di estrazione può essere utilizzato più di una volta con una combinazione di variabili, stringhe e manipolatori (come endl
):
wclog << var1 << "Some String" << var2 << endl;
Esempio: come funziona wclog?
#include #include using namespace std; int main() ( char fileName() = "data.txt"; wifstream infile(fileName); if(infile) wcout << infile.rdbuf(); else wclog << L"Error while opening the file " << fileName <
When you run the program, a possible output will be (if there is error in opening the file):
Error while opening the file data.txt