C ++: n wclog-objekti on luokan wostream-objekti. Se liittyy normaaliin C-virheen ulostulovirtaan stderr.
Ero tukossa ja wclogissa
tukkia käyttäjät char (kapea merkki) merkityypiksi. Sitä voidaan käyttää ASCII- ja ANSI-merkkeihin.
Kansainvälistymiseen tarvitaan Unicode-merkkijonoja, jotka eivät sovi merkkeihin. wclog käyttää wchar_t (laaja merkki) ja sitä voidaan käyttää Unicode-merkkeihin.
Ero wcerrin ja wclogin välillä
wclog
ja wcerr
molemmat liittyvät stderr
, mutta se eroaa wcerr
siinä mielessä, että virtaukset wclog
ovat puskuroituja eikä niihin ole automaattisesti sidottu wcout
.
Puskuroitu lähtö on tehokkaampaa kuin puskuroimaton lähtö. Puskuroidun lähdön tapauksessa koko lähtö tallennetaan muuttujaan ja kirjoitetaan levylle kerralla. Puskuroimattomalle lähdölle meidän on jatkettava kirjoittamista levylle.
Puskuroitua lähtöä ei suositella kriittisten virheiden varalta. Järjestelmän kaatumisen yhteydessä voi tulla tilanne, jossa lähtö oli edelleen puskurissa eikä sitä kirjoitettu levylle eikä virhesanomaa voida noutaa. Meillä ei ole varaa menettää virhetietoja järjestelmän kaatumisen yhteydessä, joten kirjoitamme kriittiset virheet levylle, vaikka ne ovatkin hitaampia.
wclog
käytetään yleisesti hakkuutarkoituksiin. Ei-kriittisten tapahtumien kirjaamisessa tehokkuus on tärkeämpää, joten wclog on edullinen wcerr
.
wclog-ilmoitus
ulkoinen ostream wclog;
Se määritetään otsikkotiedostossa "> header file.
wclog
Tavoitteena on varmistettu alustaa aikana tai ennen ensimmäistä kertaa kohde tyyppi ios_base::Init
on rakennettu. wclog
ei ole sidottu mihinkään muuhun streamiin.
"Wc" wclog
tarkoittaa "laajaa merkkiä", mikä wclog
tarkoittaa "laajaa merkkilokia".
wclog
objektia käytetään yhdessä lisäysoperaattorin (<<) kanssa merkkivirran näyttämiseksi. Yleinen syntakse on:
wclog << varName;
tai
wclog << "Jotkut merkkijonot";
Puraoperaattoria voidaan käyttää useammin kuin kerran muuttujien, merkkijonojen ja manipulaattoreiden (kuten endl
) yhdistelmän kanssa:
wclog << var1 << "Jotkut merkkijonot" << var2 << endl;
Esimerkki: Kuinka wclog toimii?
#include #include using namespace std; int main() ( char fileName() = "data.txt"; wifstream infile(fileName); if(infile) wcout << infile.rdbuf(); else wclog << L"Error while opening the file " << fileName <
When you run the program, a possible output will be (if there is error in opening the file):
Error while opening the file data.txt