C ++ objekts wclog ir klases wostream objekts. Tas ir saistīts ar standarta C kļūdas izvades straumes stderr.
Atšķirība starp aizsērējumu un wclog
aizsprostot lietotājus char (šaurs raksturs) kā rakstzīmju veidu. To var izmantot ASCII un ANSI rakstzīmēm.
Internacionalizācijai mums ir nepieciešamas Unicode virknes, kas neietilpst rakstzīmēs. wclog izmanto wchar_t (plašu rakstzīmi) un izmantojams Unicode rakstzīmēm.
Atšķirība starp wcerr un wclog
wclog
un wcerr
abi ir saistīti ar stderr
, bet tas atšķiras no wcerr
tā, ka straumes wclog
tiek buferētas un nav automātiski saistītas wcout
.
Buferētā izeja ir efektīvāka nekā neiesaukta izeja. Buferētas izejas gadījumā visa izeja tiek saglabāta mainīgajā un ierakstīta diskā uzreiz. Lai nepiegādātu izvadi, mums jāturpina rakstīt uz disku.
Buferētā izvade nav ieteicama kritisku kļūdu gadījumā. Sistēmas avārijas gadījumā var rasties situācija, ka izeja joprojām bija buferī un netika ierakstīta diskā, un kļūdas ziņojumu nevar izgūt. Mēs nevaram atļauties zaudēt datus par kļūdām sistēmas avārijas gadījumā, tāpēc kritiskās kļūdas turpinām rakstīt diskā, kaut arī tas notiek lēnāk.
wclog
parasti izmanto mežizstrādes vajadzībām. Kritisku notikumu reģistrēšanai svarīgāka ir efektivitāte, tāpēc priekšroka tiek dota wclog wcerr
.
wclog deklarācija
extern ostream wclog;
Tas ir definēts galvenes failā "> header file.
wclog
Objekts tiek nodrošināta inicializēts laikā vai pirms pirmo reizi objekts tipa ios_base::Init
konstrukciju. wclog
nav piesaistīts nevienai citai straumei.
"Wc" wclog
norāda uz "plašu rakstzīmi", tādējādi wclog
nozīmē "plašu rakstzīmju žurnālu". The
wclog
objekts tiek izmantots kopā ar ievietošanas operatoru (<<), lai parādītu rakstzīmju plūsmu. Vispārējā sintakse ir šāda:
wclog << varName;
vai
wclog << "Dažas virknes";
Ekstrakcijas operatoru var izmantot vairākas reizes, izmantojot mainīgo, virkņu un manipulatoru kombināciju (piemēram endl
):
wclog << var1 << "Some String" << var2 << endl;
Piemērs: Kā darbojas 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