C ++ wclog - C ++ standarta bibliotēka

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

wclogun wcerrabi ir saistīti ar stderr, bet tas atšķiras no wcerrtā, ka straumes wclogtiek 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.

wclogparasti 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.

wclogObjekts tiek nodrošināta inicializēts laikā vai pirms pirmo reizi objekts tipa ios_base::Initkonstrukciju. wclognav piesaistīts nevienai citai straumei.

"Wc" wclognorāda uz "plašu rakstzīmi", tādējādi wclognozīmē "plašu rakstzīmju žurnālu". The

wclogobjekts 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

Interesanti raksti...