C ++ clog - Libreria standard C ++

L'oggetto clog in C ++ è un oggetto della classe ostream. È associato al flusso di output degli errori standard C stderr.

cloge cerr, entrambi sono associati a stderr, ma differisce da cerrnel senso che i flussi in clogingresso sono bufferizzati e non collegati automaticamente cout.

L'output bufferizzato è più efficiente dell'output senza buffer. Nel caso dell'output bufferizzato, tutto l'output viene salvato in una variabile e scritto su disco tutto in una volta. Per l'output senza buffer, dobbiamo continuare a scrivere su disco.

L'output memorizzato nel buffer non è preferito per gli errori critici. In caso di arresto anomalo del sistema, può verificarsi una situazione in cui l'output era ancora nel buffer e non è stato scritto su disco e il messaggio di errore non può essere recuperato. Non possiamo permetterci di perdere i dati di errore in caso di crash del sistema, quindi continuiamo a scrivere gli errori critici sul disco anche se è più lento.

clogè comunemente usato per scopi di registrazione. Per la registrazione di eventi non critici, l'efficienza è più importante, quindi clogè preferibile a cerr.

dichiarazione di intasamento

 zoccolo esterno ostream;

È definito nel file di intestazione "> file di intestazione.

Si cloggarantisce che l' oggetto venga inizializzato durante o prima della prima costruzione di un oggetto di tipo ios_base::Init. clognon è legato a nessun altro flusso.

La "c" in clog si riferisce a "carattere", quindi clog significa "log dei caratteri".

L'oggetto clog viene utilizzato insieme all'operatore di inserimento (<<) per visualizzare un flusso di caratteri. La sintassi generale è:

 clog << varName;

o

 clog << "Some String";

L'operatore di estrazione può essere utilizzato più di una volta con una combinazione di variabili, stringhe e manipolatori (come endl):

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

Esempio: come funziona lo zoccolo?

 #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 questo programma, clog viene utilizzato per trasmettere i dati di registro perché l'errore in questo caso non è critico per l'applicazione. Quindi l'uso dell'output bufferizzato di clog è più efficiente

Quando esegui il programma, l'output sarà (se c'è un errore nell'apertura del file):

 Errore durante l'apertura del file data.txt

Articoli interessanti...