Obiekt clog w C ++ jest obiektem klasy ostream. Jest on powiązany ze standardowym stderr strumienia wyjściowego błędu języka C.
clog
i cerr
, oba są powiązane z stderr
, ale różni się od tego cerr
w tym sensie, że strumienie clog
są 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.
clog
jest powszechnie używany do celów logowania. W przypadku rejestrowania zdarzeń niekrytycznych efektywność jest ważniejsza, dlatego clog
jest preferowana niż cerr.
deklaracja zatkania
zatykanie strusia zewnętrznego;
Jest zdefiniowany w pliku nagłówkowym "> plik nagłówkowy.
clog
Obiektu zapewnia być inicjowane w trakcie lub przed pierwszym obiektem typu ios_base::Init
jest wykonana. clog
nie 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