C ++ Clog - C ++ Standard Library

Das Clog-Objekt in C ++ ist ein Objekt der Klasse ostream. Es ist dem Standard-C-Fehlerausgabestream stderr zugeordnet.

clogund cerrbeide sind damit verbunden stderr, aber es unterscheidet sich von cerrdem Sinne, dass die Streams in cloggepuffert und nicht automatisch mit verknüpft sind cout.

Die gepufferte Ausgabe ist effizienter als die ungepufferte Ausgabe. Bei gepufferter Ausgabe wird die gesamte Ausgabe in einer Variablen gespeichert und auf einmal auf die Festplatte geschrieben. Für eine ungepufferte Ausgabe müssen wir weiter auf die Festplatte schreiben.

Die gepufferte Ausgabe wird für kritische Fehler nicht bevorzugt. Im Falle eines Systemabsturzes kann es vorkommen, dass sich die Ausgabe noch im Puffer befand und nicht auf die Festplatte geschrieben wurde und die Fehlermeldung nicht abgerufen werden kann. Wir können es uns nicht leisten, Fehlerdaten im Falle eines Systemabsturzes zu verlieren, daher schreiben wir die kritischen Fehler weiter auf die Disc, obwohl sie langsamer sind.

clogwird üblicherweise für Protokollierungszwecke verwendet. Für die unkritische Ereignisprotokollierung ist die Effizienz wichtiger und wird daher clogcerr vorgezogen.

Verstopfungserklärung

 extern ostream verstopfen;

Es ist in der Header-Datei "> Header-Datei definiert.

Es clogwird sichergestellt, dass das Objekt während oder vor der ersten ios_base::InitErstellung eines Objekttyps initialisiert wird. clogist an keinen anderen Stream gebunden.

Das "c" in "Verstopfen" bezieht sich auf "Zeichen", daher bedeutet Verstopfen "Zeichenprotokoll".

Das Verstopfungsobjekt wird zusammen mit dem Einfügeoperator (<<) verwendet, um einen Zeichenstrom anzuzeigen. Die allgemeine Syntax lautet:

 clog << varName;

oder

 verstopfen << "Some String";

Der Extraktionsoperator kann mehrmals mit einer Kombination aus Variablen, Zeichenfolgen und Manipulatoren (wie endl) verwendet werden:

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

Beispiel: Wie funktioniert Clog?

 #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; )

In diesem Programm wird Clog verwendet, um die Protokolldaten zu streamen, da der Fehler in diesem Fall für die Anwendung nicht kritisch ist. Die Verwendung der gepufferten Ausgabe von Clog ist daher effizienter

Wenn Sie das Programm ausführen, lautet die Ausgabe (wenn beim Öffnen der Datei ein Fehler auftritt):

 Fehler beim Öffnen der Datei data.txt

Interessante Beiträge...