Objekt wcerr v C ++ je objektom triedy ostream. Je spojená so štandardným výstupným prúdom chýb C stderr.
Rozdiel medzi cerr a wcerr
cerr
používa znak (ú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. wcerr
použitia wchar_t
(široký znak) a použiteľné pre znaky Unicode.
Rozdiel medzi wcout a wcerr
Začiatočníci programátorov v C ++ používajú cout
a wcout
na zobrazenie chyby pomocou štandardného výstupu na ladenie svojich programov, ale vždy je dobrým zvykom používať cerr
a wcerr
zobrazovať chyby.
Je to tak preto, že namiesto zobrazenia chybového toku na obrazovke môžete neskôr chybový prúd zmeniť a zapísať chyby do súboru.
wcerr vyhlásenie
externý wostream wcerr;
Je definované v hlavičkovom súbore.
Je wcerr
zaistené, že objekt je inicializovaný počas alebo pred prvou ios_base::Init
konštrukciou objektu typu . Po wcerr
skonštruovaní objektu je výraz (wcerr.flags & unitbuf)
nenulový, čo znamená, že akýkoľvek výstup odoslaný týmto objektom toku sa okamžite prepíše do operačného systému. Tiež wcerr.tie() == &wcout
tj wcerr.tie()
vráti, &wcout
čo znamená, že wcout.flush()
sa vykoná pred každou výstupnou operáciou wcerr
.
„Wc“ v wcerr
znamená „široký znak“ a „err“ znamená „chyba“, teda wcerr znamená „široký znakový znak“. wcerr
Objekt sa používa spolu s operátorom vkladanie (<<), aby sa zobrazí prúd znakov. Všeobecná syntax je:
wcerr << varName;
alebo
wcerr << "Some String";
Operátor extrakcie je možné použiť viackrát s kombináciou premenných, reťazcov a manipulátorov (napríklad endl
):
wcerr << var1 << "Some String" << var2 << endl;
Príklad: Ako funguje 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; )
Po spustení programu bude výstupom: (ak sa súbor nepodarilo otvoriť)
Chyba pri otváraní súboru data.txt