C ++ wcerr - C ++ standaardbibliotheek

Het wcerr-object in C ++ is een object van klasse ostream. Het wordt geassocieerd met de standaard C-foutuitvoerstroom stderr.

Verschil tussen cerr en wcerr

cerrgebruikt char (smal teken) als tekentype. Het kan worden gebruikt voor ASCII- en ANSI-tekens.

Voor internationalisering hebben we Unicode-strings nodig die niet in char passen. wcerrgebruikt wchar_t(breed teken) en bruikbaar voor Unicode-tekens.

Verschil tussen wcout en wcerr

Beginnende C ++ programmeurs gebruiken couten wcoutom de fout weer te geven met behulp van standaarduitvoer om hun programma's te debuggen, maar het is altijd een goede gewoonte om fouten te gebruiken cerren weer wcerrte geven.

Dit komt doordat u in plaats van de foutenstroom op het scherm weer te geven, later de foutenstroom kunt wijzigen om de fouten naar een bestand te schrijven.

wcerr verklaring

 externe wostream wcerr; 

Het wordt gedefinieerd in header-bestand "> header-bestand.

Het wcerrobject wordt geïnitialiseerd tijdens of vóór de eerste keer dat een object van het type ios_base::Initwordt geconstrueerd. Nadat het wcerrobject is geconstrueerd, is de uitdrukking (wcerr.flags & unitbuf)niet nul, wat betekent dat alle uitvoer die naar deze streamobjecten wordt verzonden, onmiddellijk naar het besturingssysteem wordt doorgespoeld. Ook geeft wcerr.tie() == &wcoutie wcerr.tie()terug &wcoutwat betekent dat wcout.flush()wordt uitgevoerd voordat een uitvoerbewerking wordt uitgevoerd wcerr.

De "wc" in wcerr verwijst naar "breed karakter" en "err" betekent "fout", vandaar dat wcerr "brede karakterfout" betekent. Het wcerrobject wordt samen met de invoegoperator (<<) gebruikt om een ​​stroom tekens weer te geven. De algemene syntaxis is:

 wcerr << varName;

of

 wcerr << "Some String";

De extractie-operator kan meerdere keren worden gebruikt met een combinatie van variabelen, strings en manipulatoren (zoals endl):

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

Voorbeeld: hoe werkt 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; )

Wanneer u het programma uitvoert, is de uitvoer: (als het bestand niet kon worden geopend)

 Fout bij het openen van het bestand data.txt

Interessante artikelen...