C ++ wclog - Biblioteca standard C ++

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 wclogsunt 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.

wclogeste 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.

wclogObiectul este asigurat inițializat în timpul sau înainte de prima dată când un obiect de tip ios_base::Initeste construit. wclognu este legat de niciun alt flux.

„Wc” din wclogse referă la „caracter larg”, deci wclogînseamnă „jurnal larg de caractere”.

wclogobiectul 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

Articole interesante...