Wcerr-objektet i C ++ er et objekt i klasse ostream. Det er assosiert med standard C-feilutgangsstrøm stderr.
Forskjellen mellom cerr og wcerr
cerr
bruker røye (smal karakter) som karaktertype. Den kan brukes til ASCII- og ANSI-tegn.
For internasjonalisering trenger vi Unicode-strenger som ikke passer i røye. wcerr
bruker wchar_t
(bred karakter) og kan brukes til Unicode-tegn.
Forskjellen mellom wcout og wcerr
Nybegynner C ++ programmerere bruker cout
og wcout
viser feilen ved hjelp av standardutdata for å feilsøke programmene, men det er alltid god praksis å bruke cerr
og wcerr
å vise feil.
Dette skyldes at i stedet for å vise feilstrømmen til skjermen, kan du senere endre feilstrømmen for å skrive feilene til en fil.
wcerr erklæring
ekstern wostream wcerr;
Den er definert i topptekstfil "> topptekstfil.
Den wcerr
gjenstand er sikret som skal initialiseres under eller før den første gang et objekt av typen ios_base::Init
er konstruert. Etter at wcerr
objektet er konstruert, er uttrykket (wcerr.flags & unitbuf)
ikke null, noe som betyr at enhver utgang som sendes til disse strømobjektene umiddelbart skylles til operativsystemet. Også wcerr.tie() == &wcout
dvs. wcerr.tie()
returnerer &wcout
som betyr at det wcout.flush()
blir utført før noen utgangsoperasjon på wcerr
.
"Wc" i wcerr
refererer til "wide character" og "err" betyr "error", derav wcerr betyr "wide character error". Den wcerr
objektet brukes sammen med innsetting operatør (<<) for å vise en strøm av tegn. Den generelle syntaksen er:
wcerr << varName;
eller
wcerr << "Noen strenger";
Utvinningsoperatøren kan brukes mer enn en gang med en kombinasjon av variabler, strenger og manipulatorer (som endl
):
wcerr << var1 << "Noen strenger" << var2 << endl;
Eksempel: Hvordan fungerer 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 kjører programmet, vil utdataene være: (hvis filen ikke kunne åpnes)
Feil under åpning av filen data.txt