Wcerr-objektet i C ++ är ett objekt av klass ostream. Det är associerat med standard C-felutmatningsströmstoder.
Skillnad mellan cerr och wcerr
cerr
använder char (smal karaktär) som karaktärstyp. Den kan användas för ASCII- och ANSI-tecken.
För internationalisering behöver vi Unicode-strängar som inte passar in röd. wcerr
använder wchar_t
(brett tecken) och kan användas för Unicode-tecken.
Skillnad mellan wcout och wcerr
Nybörjare C ++ - programmerare använder cout
och för wcout
att visa felet med standardutdata för att felsöka sina program, men det är alltid bra praxis att använda cerr
och wcerr
visa fel.
Detta beror på att istället för att visa felströmmen till skärmen kan du senare ändra felströmmen för att skriva felen till en fil.
wcerr förklaring
extern wostream wcerr;
Det definieras i rubrikfil "> rubrikfil.
Det wcerr
ändamål säkerställs att initieras under eller före den första gången ett objekt av typen ios_base::Init
konstrueras. Efter att wcerr
objektet har konstruerats är uttrycket (wcerr.flags & unitbuf)
icke noll, vilket innebär att all utdata som skickas till dessa strömobjekt spolas omedelbart till operativsystemet. Också wcerr.tie() == &wcout
dvs wcerr.tie()
returnerar &wcout
vilket innebär att det wcout.flush()
körs innan någon utgångsoperation på wcerr
.
"Wc" i wcerr
hänvisar till "wide character" och "err" betyder "error", därav wcerr betyder "wide character error". Det wcerr
objekt används tillsammans med införingsoperatören (<<) för att visa en ström av tecken. Den allmänna syntaxen är:
wcerr << varName;
eller
wcerr << "Någon sträng";
Extraktionsoperatören kan användas mer än en gång med en kombination av variabler, strängar och manipulatorer (som endl
):
wcerr << var1 << "Någon sträng" << var2 << endl;
Exempel: Hur fungerar 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; )
När du kör programmet blir resultatet: (om filen inte kunde öppnas)
Fel när filen data.txt öppnades