C ++ wclog - Biblioteka standardowa C ++

Obiekt wclog w C ++ jest obiektem klasy wostream. Jest on powiązany ze standardowym stderr strumienia wyjściowego błędu języka C.

Różnica między clog i wclog

zatkać użytkowników char (wąski znak) jako typ znaku. Może być używany dla znaków ASCII i ANSI.

Do internacjonalizacji potrzebujemy ciągów Unicode, które nie pasują do znaku. wclog używa wchar_t (szerokiego znaku) i może być używany dla znaków Unicode.

Różnica między wcerr i wclog

wclogi wcerr, oba są powiązane z stderr, ale różni się od tego wcerrw tym sensie, że strumienie wclogsą buforowane i nie są automatycznie powiązane z wcout.

Wyjście buforowane jest bardziej wydajne niż wyjście niebuforowane. W przypadku buforowanego wyjścia wszystkie dane wyjściowe są zapisywane w zmiennej i jednocześnie zapisywane na dysku. Aby uzyskać niebuforowane wyjście, musimy nadal zapisywać na dysku.

Buforowane dane wyjściowe nie są preferowane w przypadku błędów krytycznych. W przypadku awarii systemu może dojść do sytuacji, w której dane wyjściowe nadal znajdowały się w buforze i nie zostały zapisane na dysku i nie można pobrać komunikatu o błędzie. Nie możemy sobie pozwolić na utratę danych o błędach w przypadku awarii systemu, więc zapisujemy krytyczne błędy na dysku, mimo że jest wolniejszy.

wclogjest powszechnie używany do celów logowania. W przypadku rejestrowania zdarzeń niekrytycznych wydajność jest ważniejsza, dlatego preferowany jest wclog wcerr.

deklaracja wclog

 zewnętrzny ostream wclog;

Jest zdefiniowany w pliku nagłówkowym "> plik nagłówkowy.

wclogObiektu zapewnia być inicjowane w trakcie lub przed pierwszym obiektem typu ios_base::Initjest wykonana. wclognie jest powiązany z żadnym innym strumieniem.

„Wc” w wclogodnosi się do „szerokiego znaku”, a zatem wclogoznacza „dziennik znaków szerokich”. Plik

wclogobiekt jest używany wraz z operatorem wstawiania (<<) w celu wyświetlenia strumienia znaków. Ogólna składnia to:

 wclog << varName;

lub

 wclog << "Some String";

Operator ekstrakcji może być używany więcej niż jeden raz z kombinacją zmiennych, łańcuchów i manipulatorów (takich jak endl):

 wclog << var1 << "Some String" << var2 << endl;

Przykład: Jak działa 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

Interesujące artykuły...