C ++ wclog - štandardná knižnica C ++

Objekt wclog v C ++ je objektom triedy wostream. Je spojená so štandardným výstupným prúdom chýb C stderr.

Rozdiel medzi upchatím a wclogom

upchať používateľov char (úzky znak) ako typ znaku. Môže byť použitý pre znaky ASCII a ANSI.

Pre internacionalizáciu potrebujeme reťazce Unicode, ktoré sa nezmestia do znaku. wclog používa wchar_t (široký znak) a je použiteľný pre znaky Unicode.

Rozdiel medzi wcerr a wclog

wcloga wcerr, obidve sú spojené s stderr, ale líši sa to wcerrv tom zmysle, že streamy wclogsú ukladané do vyrovnávacej pamäte a nie sú automaticky viazané wcout.

Výstup v medzipamäti je efektívnejší ako výstup bez medzipamäte. V prípade výstupu s medzipamäťou sa všetok výstup uloží do premennej a zapíše sa na disk naraz. Pre výstup bez vyrovnávacej pamäte musíme pokračovať v zápise na disk.

Pre kritické chyby sa výstup v medzipamäti neuprednostňuje. V prípade zlyhania systému môže nastať situácia, že výstup bol stále v medzipamäti a nebol zapísaný na disk a chybové hlásenie sa nedá načítať. Nemôžeme si dovoliť stratiť údaje o chybách v prípade zlyhania systému, takže kritické chyby neustále zapisujeme na disk, aj keď je to pomalšie.

wclogsa bežne používa na účely prihlásenia. Pri zaznamenávaní nekritických udalostí je dôležitejšia efektívnosť, preto sa uprednostňuje protokol wclog wcerr.

wclog deklarácia

 extern ostream wclog;

Je definované v hlavičkovom súbore.

Je wclogzaistené, že objekt je inicializovaný počas alebo pred prvou ios_base::Initkonštrukciou objektu typu . wclognie je viazaný na žiadny iný prúd.

„Wc“ v wclogznamená „široký znak“, teda wclogznamená „široký znakový protokol“. The

wclogobjekt sa používa spolu s operátorom vloženia (<<) na zobrazenie toku znakov. Všeobecná syntax je:

 wclog << varName;

alebo

 wclog << "Nejaký reťazec";

Operátor extrakcie je možné použiť viackrát s kombináciou premenných, reťazcov a manipulátorov (napríklad endl):

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

Príklad: Ako funguje 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

Zaujímavé články...