C ++ wcerr - standardní knihovna C ++

Objekt wcerr v C ++ je objektem třídy ostream. Je spojen se standardním výstupním proudem stderr chyby C.

Rozdíl mezi cerr a wcerr

cerrpoužívá znak (úzký znak) jako typ znaku. Lze jej použít pro znaky ASCII a ANSI.

Pro internacionalizaci potřebujeme řetězce Unicode, které se nevejdou do char. wcerrpoužití wchar_t(široký znak) a použitelné pro znaky Unicode.

Rozdíl mezi wcout a wcerr

Programátoři C ++ pro začátečníky používají couta wcoutk zobrazení chyby pomocí standardního výstupu k ladění svých programů, ale vždy je dobrým zvykem používat cerra wcerrzobrazovat chyby.

Důvodem je, že místo zobrazování chybového proudu na obrazovce můžete později chybový proud změnit a zapsat chyby do souboru.

prohlášení wcerr

 externí wostream wcerr; 

Je definován v hlavičkovém souboru.

Je wcerrzajištěno, že objekt bude inicializován během nebo před prvním vytvořením objektu typu ios_base::Init. Po wcerrzkonstruování objektu je výraz (wcerr.flags & unitbuf)nenulový, což znamená, že jakýkoli výstup odeslaný těmto objektům proudu je okamžitě vyprázdněn do operačního systému. Také wcerr.tie() == &wcouttj. wcerr.tie()Vrací, &wcoutcož znamená, že wcout.flush()se provede před jakoukoli výstupní operací wcerr.

„Wc“ v wcerr odkazuje na „široký znak“ a „err“ znamená „chyba“, proto wcerr znamená „široký znakový znak“. wcerrObjekt se používá spolu s operátorem vkládání (<<), aby se zobrazí proud znaků. Obecná syntaxe je:

 wcerr << varName;

nebo

 wcerr << "Nějaký řetězec";

Operátor extrakce lze použít více než jednou s kombinací proměnných, řetězců a manipulátorů (jako endl):

 wcerr << var1 << "Nějaký řetězec" << var2 << endl;

Příklad: Jak 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 spuštění programu bude výstup: (pokud soubor nelze otevřít)

 Chyba při otevírání souboru data.txt

Zajímavé články...