C ++ objektas „wclog“ yra klasės „wostream“ objektas. Tai siejama su standartine C klaidos išvesties srauto stderr.
Clog ir wclog skirtumas
užkimšti vartotojus char (siauras simbolis) kaip simbolio tipą. Jis gali būti naudojamas ASCII ir ANSI simboliams.
Internacionalizacijai reikalingos „Unicode“ eilutės, kurios netelpa į simbolį. „wclog“ naudoja „wchar_t“ (platus simbolis) ir naudojamas „Unicode“ simboliams.
Skirtumas tarp wcerr ir wclog
wclog
ir wcerr
abu yra susieti stderr
, tačiau skiriasi nuo wcerr
ta prasme, kad srautai wclog
yra buferiniai ir nėra automatiškai susieti wcout
.
Buferinė išvestis yra efektyvesnė už neparduotą išvestį. Buferinės išvesties atveju visa išvestis įrašoma į kintamąjį ir iš karto įrašoma į diską. Norėdami neišpirkti išvesties, turime toliau rašyti į diską.
Buferinis išėjimas nėra pageidaujamas dėl kritinių klaidų. Sistemos gedimo atveju gali atsirasti situacija, kai išvestis vis dar buvo buferyje ir nebuvo įrašyta į diską, o klaidos pranešimo nepavyksta atgauti. Negalime sau leisti prarasti klaidų duomenų sistemos gedimo atveju, todėl kritines klaidas nuolat rašome į diską, nors jie yra lėtesni.
wclog
yra paprastai naudojamas medienos ruošos tikslams. Nekritinių įvykių registravimui svarbesnis yra efektyvumas, todėl pirmenybė teikiama „wclog“ wcerr
.
wclog deklaracija
extern ostream wclog;
Tai apibrėžiama antraštės faile "> header file.
wclog
Užtikrinamas objektas turi būti inicializuoti metu arba prieš pirmą kartą, kurio tipas objektas ios_base::Init
yra sukonstruotas. wclog
nėra pririštas prie jokios kitos srovės.
„Wc“ wclog
reiškia „platų simbolį“, taigi wclog
reiškia „platų simbolių žurnalą“.
wclog
objektas naudojamas kartu su įterpimo operatoriumi (<<), kad būtų rodomas simbolių srautas. Bendroji sintaksė yra:
wclog << varName;
arba
wclog << „Kai kurios stygos“;
Ištraukimo operatorius gali būti naudojamas daugiau nei vieną kartą kartu su kintamaisiais, eilutėmis ir manipuliatoriais (pvz. endl
):
wclog << var1 << "Kai kurios eilutės" << var2 << endl;
Pavyzdys: Kaip veikia „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