Wclog-objektet i C ++ är ett objekt för klass wostream. Det är associerat med standard C-felutmatningsströmstoder.
Skillnad mellan täppa och wclog
täppa till användare char (smal karaktär) som teckentyp. Den kan användas för ASCII- och ANSI-tecken.
För internationalisering behöver vi Unicode-strängar som inte passar in röd. wclog använder wchar_t (brett tecken) och kan användas för Unicode-tecken.
Skillnad mellan wcerr och wclog
wclog
och wcerr
båda är associerade med stderr
, men det skiljer sig från wcerr
i den meningen att strömmarna wclog
är buffrade och inte automatiskt knutna till wcout
.
Buffrad utdata är effektivare än opuffert utdata. När det gäller buffrad utgång sparas all utdata i en variabel och skrivs till disk samtidigt. För obuffert utdata måste vi fortsätta skriva till disk.
Buffrad utdata föredras inte för kritiska fel. I händelse av systemkrasch kan det uppstå en situation där utdata fortfarande var i buffert och inte skrevs till disk och felmeddelandet inte kan hämtas. Vi har inte råd att tappa feldata i händelse av systemkrasch så vi fortsätter att skriva de kritiska felen till skivan trots att den är långsammare.
wclog
används ofta för loggningsändamål. För icke-kritisk händelseloggning är effektivitet viktigare så wclog föredras framför wcerr
.
wclogdeklaration
extern ostream wclog;
Det definieras i rubrikfil "> rubrikfil.
Det wclog
ändamål säkerställs att initieras under eller före den första gången ett objekt av typen ios_base::Init
konstrueras. wclog
är inte knuten till någon annan ström.
"WC" i wclog
hänvisar till "vid karaktär", följaktligen wclog
betyder "bred karaktärslogg". De
wclog
objektet används tillsammans med insättningsoperatören (<<) för att visa en ström av tecken. Den allmänna syntaxen är:
wclog << varName;
eller
wclog << "Någon sträng";
Extraktionsoperatören kan användas mer än en gång med en kombination av variabler, strängar och manipulatorer (som endl
):
wclog << var1 << "Någon sträng" << var2 << endl;
Exempel: Hur fungerar wclog?
#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