C ++ wcerr - Biblioteca standard C ++

Obiectul wcerr din C ++ este un obiect din clasa ostream. Este asociat cu fluxul standard de ieșire de eroare C stderr.

Diferența dintre cerr și wcerr

cerrfolosește 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. wcerrutilizează wchar_t(caracter larg) și poate fi utilizat pentru caracterele Unicode.

Diferența dintre wcout și wcerr

Programatorii începători C ++ folosesc coutși wcoutafișează eroarea folosind ieșirea standard pentru a depana programele lor, dar este întotdeauna o bună practică să folosiți cerrși wcerrsă afișați erori.

Acest lucru se datorează faptului că, în loc să afișați fluxul de erori pe ecran, puteți modifica ulterior fluxul de eroare pentru a scrie erorile într-un fișier.

declaratie wcerr

 extern wostream wcerr; 

Este definit în fișierul antet "> fișierul antet.

wcerrObiectul este asigurat inițializat în timpul sau înainte de prima dată când un obiect de tip ios_base::Initeste construit. După ce wcerrobiectul este construit, expresia (wcerr.flags & unitbuf)este diferită de zero, ceea ce înseamnă că orice ieșire trimisă către aceste obiecte flux este imediat transferată la sistemul de operare. De asemenea, wcerr.tie() == &wcoutie wcerr.tie()returnează, &wcoutceea ce înseamnă că wcout.flush()este executat înainte de orice operație de ieșire activată wcerr.

„Wc” în wcerr se referă la „caracter larg” și „err” înseamnă „eroare”, de aceea wcerr înseamnă „eroare caracter larg”. wcerrObiectul este utilizat împreună cu operatorul de inserare (<<) pentru a afișa un flux de caractere. Sintaxa generală este:

 wcerr << varName;

sau

 wcerr << "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):

 wcerr << var1 << "Some String" << var2 << endl;

Exemplu: Cum funcționează wcerr?

 #include #include using namespace std; int main() ( char fileName() = "data.txt"; wifstream infile(fileName); if(infile) wcout << infile.rdbuf(); else wcerr << "Error while opening the file " << fileName << endl; return; )

Când rulați programul, ieșirea va fi: (dacă fișierul nu a putut fi deschis)

 Eroare la deschiderea fișierului data.txt

Articole interesante...