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
wclog
a wcerr
, obidve sú spojené s stderr
, ale líši sa to wcerr
v tom zmysle, že streamy wclog
sú 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.
wclog
sa 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 wclog
zaistené, že objekt je inicializovaný počas alebo pred prvou ios_base::Init
konštrukciou objektu typu . wclog
nie je viazaný na žiadny iný prúd.
„Wc“ v wclog
znamená „široký znak“, teda wclog
znamená „široký znakový protokol“. The
wclog
objekt 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