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
wclog
in wcerr
oba sta povezana z stderr
, vendar se razlikuje od tega wcerr
v tem smislu, da so tokovi v wclog
medpomnilniku 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.
wclog
se 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 wclog
je, da se objekt inicializira med ali pred prvim ios_base::Init
konstruiranjem objekta tipa . wclog
ni vezan na noben drug tok.
"Wc" v se wclog
nanaša na "širok znak", torej wclog
pomeni "širok dnevnik znakov". The
wclog
Predmet 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