C ++: n wcerr-objekti on luokan ostream -objekti. Se liittyy normaaliin C-virheen ulostulovirtaan stderr.
Cerrin ja wcerrin välinen ero
cerr
käyttää merkkiä tyypillä char (kapea merkki). Sitä voidaan käyttää ASCII- ja ANSI-merkkeihin.
Kansainvälistymiseen tarvitaan Unicode-merkkijonoja, jotka eivät sovi merkkeihin. wcerr
käyttää wchar_t
(laaja merkki) ja käytettävissä Unicode-merkkeihin.
Ero wcoutin ja wcerrin välillä
Aloittelijoiden C ++ - ohjelmoijat käyttävät cout
ja wcout
näyttävät virheen käyttämällä vakiolähtöä ohjelmiensa virheenkorjaukseen, mutta virheiden käyttö cerr
ja wcerr
näyttäminen on aina hyvä tapa .
Tämä johtuu siitä, että virhevirran näyttämisen sijaan voit myöhemmin muuttaa virtavirtaa kirjoittamaan virheet tiedostoon.
wcerrin ilmoitus
ulkoinen wostream wcerr;
Se määritetään otsikkotiedostossa "> header file.
wcerr
Tavoitteena on varmistettu alustaa aikana tai ennen ensimmäistä kertaa kohde tyyppi ios_base::Init
on rakennettu. Kun wcerr
objekti on muodostettu, lauseke (wcerr.flags & unitbuf)
ei ole nolla, mikä tarkoittaa, että kaikki näille virtaobjekteille lähetetyt lähdöt huuhdellaan välittömästi käyttöjärjestelmään. Toisin wcerr.tie() == &wcout
sanoen wcerr.tie()
palaa, &wcout
mikä tarkoittaa, että wcout.flush()
se suoritetaan ennen mitään tulostustoimintoa wcerr
.
"Wc" wcerr
tarkoittaa "laajaa merkkiä" ja "virhe" tarkoittaa "virhettä", joten wcerr tarkoittaa "laajaa merkkivirhettä". wcerr
Objektia käytetään yhdessä lisäyksen operaattorin (<<), jotta näyttää virran merkkiä. Yleinen syntakse on:
wcerr << varName;
tai
wcerr << "Jotkut merkkijonot";
Puraoperaattoria voidaan käyttää useammin kuin kerran muuttujien, merkkijonojen ja manipulaattoreiden (kuten endl
) yhdistelmän kanssa:
wcerr << var1 << "Jotkut merkkijonot" << var2 << endl;
Esimerkki: Kuinka wcerr toimii?
#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; )
Kun suoritat ohjelmaa, tulos on: (jos tiedostoa ei voitu avata)
Virhe avattaessa tiedostoa data.txt