El objeto wclog en C ++ es un objeto de la clase wostream. Está asociado con el flujo de salida de error C estándar stderr.
Diferencia entre clog y wclog
clog users char (carácter estrecho) como tipo de carácter. Se puede utilizar para caracteres ASCII y ANSI.
Para la internacionalización, necesitamos cadenas Unicode que no encajen en char. wclog usa wchar_t (carácter ancho) y se puede usar para caracteres Unicode.
Diferencia entre wcerr y wclog
wclog
y wcerr
, ambos están asociados con stderr
, pero difiere wcerr
en el sentido de que los flujos en wclog
se almacenan en búfer y no se vinculan automáticamente con wcout
.
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.
wclog
se utiliza comúnmente para fines de registro. Para el registro de eventos no críticos, la eficiencia es más importante, por lo que se prefiere wclog a wcerr
.
declaración wclog
wclog ostream externo;
Se define en el archivo de encabezado "> archivo de encabezado.
Se wclog
garantiza que el objeto se inicializa durante o antes de la primera vez que ios_base::Init
se construye un objeto de tipo . wclog
no está vinculado a ninguna otra corriente.
El "wc" en se wclog
refiere a "carácter ancho", por wclog
lo tanto significa "registro de caracteres amplios". los
wclog
El objeto se utiliza junto con el operador de inserción (<<) para mostrar un flujo de caracteres. La sintaxis general es:
wclog << varName;
o
wclog << "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
):
wclog << var1 << "Alguna cadena" << var2 << endl;
Ejemplo: ¿Cómo funciona wclog?
#include #include using namespace std; int main() ( char fileName() = "data.txt"; wifstream infile(fileName); if(infile) wcout << infile.rdbuf(); else wclog << L"Error while opening the file " << fileName <
When you run the program, a possible output will be (if there is error in opening the file):
Error while opening the file data.txt