C ++ wclog - standardna knjižnica C ++

Objekt wclog v jeziku C ++ je objekt razreda wostream. Povezan je s standardnim izhodnim tokom napake C stderr.

Razlika med zamašitvijo in zamašitvijo

zamaši uporabnike char (ozek znak) kot vrsto znaka. Uporablja se lahko za znake ASCII in ANSI.

Za internacionalizacijo potrebujemo nize Unicode, ki ne ustrezajo črki. wclog uporablja wchar_t (širok znak) in uporaben za znake Unicode.

Razlika med wcerr in wclog

wclogin wcerroba sta povezana z stderr, vendar se razlikuje od tega wcerrv tem smislu, da so tokovi v wclogmedpomnilniku in niso samodejno povezani z wcout.

Predpomnjeni izhod je učinkovitejši od nebuferiranega izhoda. V primeru medpomnjenega izhoda je ves izhod shranjen v spremenljivko in zapisan na disk hkrati. Za nebuferirani izhod moramo še naprej zapisovati na disk.

Vmesni izhod ni zaželen za kritične napake. V primeru sesutja sistema lahko pride do situacije, ko je bil izhod še vedno v medpomnilniku in ni bil zapisan na disk, sporočila o napaki pa ni mogoče pridobiti. Ne moremo si privoščiti izgube podatkov o napakah v primeru zrušitve sistema, zato kritične napake še naprej zapisujemo na disk, čeprav je to počasneje.

wclogse pogosto uporablja za sečnjo. Za nekritično beleženje dogodkov je učinkovitost pomembnejša, zato je prednostno wclog wcerr.

wclog izjava

 zunanji ostream wclog;

Določen je v datoteki glave "> datoteka glave.

Zagotovljeno wclogje, da se objekt inicializira med ali pred prvim ios_base::Initkonstruiranjem objekta tipa . wclogni vezan na noben drug tok.

"Wc" v se wclognanaša na "širok znak", torej wclogpomeni "širok dnevnik znakov". The

wclogPredmet se uporablja skupaj z vstavnim operatorjem (<<) za prikaz toka znakov. Splošna sintaksa je:

 wclog << varName;

ali

 wclog << "Nekateri niz";

Operator ekstrakcije je mogoče večkrat uporabiti s kombinacijo spremenljivk, nizov in manipulatorjev (na primer endl):

 wclog << var1 << "Nekateri niz" << var2 << endl;

Primer: Kako deluje 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

Zanimive Članki...