Wclog-objektet i C ++ er et objekt i klasse wostream. Det er associeret med standard C-fejloutput stream stderr.
Forskel mellem tilstopning og wclog
tilstoppe brugere 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. wclog bruger wchar_t (bred karakter) og kan bruges til Unicode-tegn.
Forskel mellem wcerr og wclog
wclog
og wcerr
begge er associeret med stderr
, men det adskiller sig fra wcerr
i den forstand, at strømme ind wclog
er bufret og ikke automatisk bundet med wcout
.
Bufferoutput er mere effektivt end ikke-bufret output. I tilfælde af bufret output gemmes al output i en variabel og skrives til disken på én gang. For ubufret output skal vi fortsætte med at skrive til disken.
Buffered output foretrækkes ikke til kritiske fejl. I tilfælde af systemnedbrud kan der komme en situation, hvor output stadig var i buffer og ikke blev skrevet til disken, og fejlmeddelelsen ikke kan hentes. Vi har ikke råd til at miste fejldata i tilfælde af systemnedbrud, så vi fortsætter med at skrive de kritiske fejl på disken, selvom de er langsommere.
wclog
bruges almindeligvis til logning. For ikke-kritisk hændelseslogning er effektivitet vigtigere, så wclog foretrækkes frem for wcerr
.
wclog-erklæring
ekstern ostream wclog;
Det er defineret i header-fil "> header-fil.
Det wclog
formål sikres initialiseres under eller før den første gang et objekt af typen ios_base::Init
konstrueres. wclog
er ikke bundet til nogen anden strøm.
"Wc" i wclog
henviser til "bred karakter", wclog
betyder derfor "bred tegnlog". Det
wclog
objekt bruges sammen med indsættelsesoperatoren (<<) for at vise en strøm af tegn. Den generelle syntaks er:
wclog << varName;
eller
wclog << "Nogle strenge";
Ekstraktionsoperatøren kan bruges mere end én gang med en kombination af variabler, strenge og manipulatorer (som endl
):
wclog << var1 << "Nogle strenge" << 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