Wcerr-objektet i C ++ er et objekt i klasse ostream. Det er associeret med standard C-fejloutput stream stderr.
Forskel mellem cerr og wcerr
cerr
bruger char (smal karakter) som karaktertype. Det kan bruges til ASCII- og ANSI-tegn.
Til internationalisering har vi brug for Unicode-strenge, der ikke passer i char. wcerr
bruger wchar_t
(bred karakter) og kan bruges til Unicode-tegn.
Forskel mellem wcout og wcerr
Begynder C ++ - programmører bruger cout
og wcout
til at vise fejlen ved hjælp af standardoutput til at debugge deres programmer, men det er altid god praksis at bruge cerr
og wcerr
vise fejl.
Dette skyldes, at i stedet for at vise fejlstrømmen til skærmen, kan du senere ændre fejlstrømmen for at skrive fejlene til en fil.
Wcerr erklæring
ekstern wostream wcerr;
Det er defineret i header-fil "> header-fil.
Det wcerr
formål sikres initialiseres under eller før den første gang et objekt af typen ios_base::Init
konstrueres. Når wcerr
objektet er konstrueret, er udtrykket (wcerr.flags & unitbuf)
ikke nul, hvilket betyder, at ethvert output sendt til disse streamobjekter straks skylles til operativsystemet. Også wcerr.tie() == &wcout
dvs. wcerr.tie()
returnerer, &wcout
hvilket betyder, at wcout.flush()
der udføres før enhver outputhandling på wcerr
.
"Wc" i wcerr
henviser til "bred karakter" og "err" betyder "fejl", derfor betyder wcerr "bred tegnfejl". Den wcerr
genstand er brugt sammen med indsættelsen operatør (<<) for at vise en strøm af tegn. Den generelle syntaks er:
wcerr << varName;
eller
wcerr << "Nogle strenge";
Ekstraktionsoperatøren kan bruges mere end én gang med en kombination af variabler, strenge og manipulatorer (som endl
):
wcerr << var1 << "Nogle strenge" << 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 kører programmet, vil output være: (hvis filen ikke kunne åbnes)
Fejl under åbning af filen data.txt