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

Objekt wclog u jeziku C ++ objekt je klase wostream. Povezan je sa standardnim izlaznim tokom pogreške C stderr.

Razlika između začepljenja i začepljenja

začepiti korisnike char (uski znak) kao vrstu znaka. Može se koristiti za ASCII i ANSI znakove.

Za internacionalizaciju trebamo Unicode nizove koji se ne uklapaju u char. wclog koristi wchar_t (široki znak) i upotrebljiv za Unicode znakove.

Razlika između wcerr i wclog

wclogi wcerrobje su povezane s stderr, ali se razlikuje od toga wcerru smislu da su potoci u wclogbaferu i nisu automatski povezani s wcout.

Međuspremni izlaz učinkovitiji je od nebuferiranog. U slučaju međuspremnika, sav se izlaz sprema u varijablu i odjednom zapisuje na disk. Za nebuferirani izlaz moramo nastaviti pisati na disk.

Me uspremljeni izlaz nije poželjan za kritične pogreške. U slučaju pada sustava, može doći do situacije da je izlaz još uvijek u međuspremniku i nije zapisan na disk, a poruka o pogrešci ne može se dohvatiti. Ne možemo si priuštiti gubitak podataka o pogreškama u slučaju pada sustava pa kritične pogreške nastavljamo upisivati ​​na disk iako je sporiji.

wclogse obično koristi za sječu drva. Za nekritično zapisivanje događaja, učinkovitost je važnija pa se preferira wclog wcerr.

wclog deklaracija

 vanjski ostream wclog;

Definirano je u datoteci zaglavlja "> datoteka zaglavlja.

Osigurano wclogje da se objekt inicijalizira tijekom ili prije prvog ios_base::Initkonstruiranja objekta tipa . wclognije vezan ni za jedan drugi tok.

"Wc" u wclogodnosi se na "širok karakter", dakle wclogznači "širok zapis znakova". The

wclogobjekt koristi se zajedno s operatorom umetanja (<<) kako bi se prikazao tok znakova. Općenita sintaksa je:

 wclog << varName;

ili

 wclog << "Neki niz";

Operator ekstrakcije može se koristiti više puta s kombinacijom varijabli, nizova i manipulatora (poput endl):

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

Primjer: Kako radi 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

Zanimljivi članci...