C ++ Clog - Biblioteca estándar de C ++

El objeto clog en C ++ es un objeto de clase ostream. Está asociado con el flujo de salida de error C estándar stderr.

clogy cerr, ambos están asociados con stderr, pero difiere cerren el sentido de que los flujos en clogse almacenan en búfer y no se vinculan automáticamente con cout.

La salida con búfer es más eficiente que la salida sin búfer. En el caso de la salida almacenada en búfer, toda la salida se guarda en una variable y se escribe en el disco de una vez. Para una salida sin búfer, tenemos que seguir escribiendo en el disco.

No se prefiere la salida en búfer para errores críticos. En caso de falla del sistema, puede ocurrir una situación en la que la salida todavía esté en el búfer y no se haya escrito en el disco y el mensaje de error no se pueda recuperar. No podemos permitirnos perder datos de error en caso de que el sistema se bloquee, por lo que seguimos escribiendo los errores críticos en el disco aunque sea más lento.

clogse utiliza comúnmente para fines de registro. Para el registro de eventos no críticos, la eficiencia es más importante, por lo que clogse prefiere a cerr.

declaración de obstrucción

 obstrucción externa de ostream;

Se define en el archivo de encabezado "> archivo de encabezado.

Se cloggarantiza que el objeto se inicializa durante o antes de la primera vez que ios_base::Initse construye un objeto de tipo . clogno está vinculado a ninguna otra corriente.

La "c" en clog se refiere a "carácter", por lo tanto, clog significa "registro de caracteres".

El objeto de obstrucción se utiliza junto con el operador de inserción (<<) para mostrar un flujo de caracteres. La sintaxis general es:

 obstruir << varName;

o

 obstruir << "Alguna cadena";

El operador de extracción se puede utilizar más de una vez con una combinación de variables, cadenas y manipuladores (como endl):

 clog << var1 << "Alguna cadena" << var2 << endl;

Ejemplo: ¿Cómo funciona la obstrucción?

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

En este programa, clog se usa para transmitir los datos de registro porque el error en este caso no es crítico para la aplicación. Por lo tanto, el uso de la salida de obstrucción con búfer es más eficiente

Cuando ejecute el programa, la salida será (si hay un error al abrir el archivo):

 Error al abrir el archivo data.txt

Articulos interesantes...