Obiectul wclog din C ++ este un obiect al clasei wostream. Este asociat cu fluxul standard de ieșire de eroare C stderr.
Diferența dintre clog și wclog
blocați utilizatorii char (caracter îngust) ca tip de caracter. Poate fi folosit pentru caractere ASCII și ANSI.
Pentru internaționalizare, avem nevoie de șiruri Unicode care nu se încadrează în caractere. wclog folosește wchar_t (caracter larg) și poate fi utilizat pentru caracterele Unicode.
Diferența dintre wcerr și wclog
wclog
și wcerr
, ambele sunt asociate cu stderr
, dar diferă de wcerr
în sensul că fluxurile din wclog
sunt tamponate și nu sunt legate automat cu wcout
.
Ieșirea tamponată este mai eficientă decât ieșirea nebuferată. În cazul ieșirii tamponate, toate ieșirile sunt salvate într-o variabilă și scrise pe disc simultan. Pentru ieșirea fără tampon, trebuie să continuăm să scriem pe disc.
Ieșirea tamponată nu este preferată pentru erorile critice. În caz de blocare a sistemului, poate apărea o situație în care ieșirea a fost încă în tampon și nu a fost scrisă pe disc și mesajul de eroare nu poate fi recuperat. Nu ne putem permite să pierdem datele de eroare în caz de blocare a sistemului, așa că continuăm să scriem erorile critice pe disc, deși este mai lent.
wclog
este utilizat în mod obișnuit în scopuri de înregistrare. Pentru înregistrarea evenimentelor non-critice, eficiența este mai importantă, așa că este preferat wclog wcerr
.
declarație wclog
extern ostream wclog;
Este definit în fișierul antet "> fișierul antet.
wclog
Obiectul este asigurat inițializat în timpul sau înainte de prima dată când un obiect de tip ios_base::Init
este construit. wclog
nu este legat de niciun alt flux.
„Wc” din wclog
se referă la „caracter larg”, deci wclog
înseamnă „jurnal larg de caractere”.
wclog
obiectul este utilizat împreună cu operatorul de inserare (<<) pentru a afișa un flux de caractere. Sintaxa generală este:
wclog << varName;
sau
wclog << "Some String";
Operatorul de extracție poate fi folosit de mai multe ori cu o combinație de variabile, șiruri și manipulatoare (cum ar fi endl
):
wclog << var1 << "Some String" << var2 << endl;
Exemplu: Cum funcționează 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