Wclog-objektet i C ++ er et objekt for klasse wostream. Det er assosiert med standard C-feilutgangsstrøm stderr.
Forskjellen mellom tette og wclog
tette brukere char (smal karakter) som tegnetype. Den kan brukes til ASCII- og ANSI-tegn.
For internasjonalisering trenger vi Unicode-strenger som ikke passer i røye. wclog bruker wchar_t (bredt tegn) og kan brukes til Unicode-tegn.
Forskjellen mellom wcerr og wclog
wclog
og wcerr
begge er assosiert med stderr
, men det skiller seg fra wcerr
i den forstand at strømmer i wclog
er bufret og ikke automatisk bundet med wcout
.
Bufret utgang er mer effektiv enn ubuffert utgang. I tilfelle buffert utdata lagres all utdata i en variabel og skrives til disken samtidig. For ubuffert utgang må vi fortsette å skrive til disken.
Buffered output er ikke foretrukket for kritiske feil. I tilfelle systemkrasj kan det oppstå en situasjon der utdataene fremdeles var i buffer og ikke ble skrevet til disken, og feilmeldingen ikke kan hentes. Vi har ikke råd til å miste feildata i tilfelle systemkrasj, så vi fortsetter å skrive de kritiske feilene på platen, selv om de er tregere.
wclog
brukes ofte til loggføringsformål. For ikke-kritisk hendelseslogging er effektivitet viktigere, så wclog foretrekkes fremfor wcerr
.
wclog-erklæring
ekstern ostream wclog;
Den er definert i topptekstfil "> topptekstfil.
Den wclog
gjenstand er sikret som skal initialiseres under eller før den første gang et objekt av typen ios_base::Init
er konstruert. wclog
er ikke bundet til noen annen strøm.
"Wc" i wclog
refererer til "bred karakter", wclog
betyr derfor "bred tegnlogg". De
wclog
objektet brukes sammen med innsettingsoperatøren (<<) for å vise en strøm av tegn. Den generelle syntaksen er:
wclog << varName;
eller
wclog << "Noen strenger";
Utvinningsoperatøren kan brukes mer enn en gang med en kombinasjon av variabler, strenger og manipulatorer (som endl
):
wclog << var1 << "Noen strenger" << var2 << endl;
Eksempel: Hvordan wclog fungerer?
#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