C ++ objekt wclog on klassi wostream objekt. See on seotud standardse C vea väljundvoo stderriga.
Erinevus ummistuse ja wclogi vahel
ummistada kasutajad char (kitsas tähemärk) märgitüübina. Seda saab kasutada ASCII ja ANSI tähemärkide jaoks.
Rahvusvaheliseks muutumiseks vajame Unicode'i stringe, mis ei mahu tähemärki. wclog kasutab wchar_t (lai tähemärk) ja seda saab kasutada Unicode'i märkide jaoks.
Wcerri ja wclogi erinevus
wclog
ja wcerr
mõlemad on seotud stderr
, kuid see erineb wcerr
selles mõttes, et voogudes wclog
on puhverdatud ega ole automaatselt seotud wcout
.
Puhverdatud väljund on tõhusam kui pakkimata väljund. Puhverdatud väljundi korral salvestatakse kogu väljund muutujasse ja kirjutatakse korraga kettale. Pakendamata väljundi jaoks peame kirjutama kettale.
Puhverdatud väljundit ei eelistata kriitiliste vigade korral. Süsteemi krahhi korral võib tekkida olukord, kus väljund oli endiselt puhvris ja seda ei olnud kettale kirjutatud ning tõrketeadet ei saa tuua. Me ei saa lubada süsteemi krahhi korral veaandmete kaotamist, seega kirjutame kriitilised vead plaadile, kuigi see on aeglasem.
wclog
kasutatakse tavaliselt metsaraie eesmärgil. Mittekriitiliste sündmuste logimisel on olulisem efektiivsus, seega eelistatakse wclog'i wcerr
.
wclog deklaratsioon
extern ostream wclog;
See on määratletud päisefailis "> päisefail.
wclog
On kindlustatud lähtestada ajal või enne esimest korda objekti tüübiga ios_base::Init
on ehitatud. wclog
pole ühegi teise vooga seotud.
"Wc" wclog
viitab "laiale tähemärgile", seega wclog
tähendab "laia tähemärkide logi". The
wclog
objekti kasutatakse koos sisestusoperaatoriga (<<) tähemärkide voo kuvamiseks. Üldine süntaks on:
wclog << varName;
või
wclog << "Mõned stringid";
Ekstraheerimisoperaatorit saab kasutada mitu korda koos muutujate, stringide ja manipulaatorite (näiteks endl
) kombinatsiooniga :
wclog << var1 << "Mõni string" << var2 << endl;
Näide: Kuidas wclog töötab?
#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