C ++ clog - C ++ Standard Library

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

clogi cerr, oba są powiązane z stderr, ale różni się od tego cerrw tym sensie, że strumienie clogsą buforowane i nie są automatycznie powiązane z cout.

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.

clogjest powszechnie używany do celów logowania. W przypadku rejestrowania zdarzeń niekrytycznych efektywność jest ważniejsza, dlatego clogjest preferowana niż cerr.

deklaracja zatkania

 zatykanie strusia zewnętrznego;

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

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

„C” w zatykaniu odnosi się do „znaku”, stąd „zatkanie” oznacza „dziennik znaków”.

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

 zatkać << varName;

lub

 zatkać << "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):

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

Przykład: Jak działa chodak?

 #include #include using namespace std; int main() ( char fileName() = "data.txt"; ifstream infile(fileName); if(infile) cout << infile.rdbuf(); else clog << "Error while opening the file " << fileName << endl; return 0; )

W tym programie clog jest używany do przesyłania strumieniowego danych dziennika, ponieważ błąd w tym przypadku nie jest krytyczny dla aplikacji. Zatem użycie buforowanego wyjścia zatykania jest bardziej wydajne

Po uruchomieniu programu wynik będzie (jeśli wystąpi błąd podczas otwierania pliku):

 Błąd podczas otwierania pliku data.txt

Interesujące artykuły...