C ++ wclog - C ++ Standardbibliotek

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

wclogog wcerrbegge er associeret med stderr, men det adskiller sig fra wcerri den forstand, at strømme ind wcloger 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.

wclogbruges 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 wclogformål sikres initialiseres under eller før den første gang et objekt af typen ios_base::Initkonstrueres. wcloger ikke bundet til nogen anden strøm.

"Wc" i wcloghenviser til "bred karakter", wclogbetyder derfor "bred tegnlog". Det

wclogobjekt 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

Interessante artikler...