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

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

Diferencia entre cerr y wcerr

cerrutiliza 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. wcerrutiliza wchar_t(carácter ancho) y utilizable para caracteres Unicode.

Diferencia entre wcout y wcerr

Los programadores principiantes de C ++ usan couty wcoutpara mostrar el error usando la salida estándar para depurar sus programas, pero siempre es una buena práctica usar cerry wcerrmostrar errores.

Esto se debe a que, en lugar de mostrar el flujo de errores en la pantalla, más tarde puede cambiar el flujo de errores para escribir los errores en un archivo.

declaración wcerr

 wostream wcerr externo; 

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

Se wcerrgarantiza que el objeto se inicializa durante o antes de la primera vez que ios_base::Initse construye un objeto de tipo . Una vez wcerrconstruido el objeto, la expresión (wcerr.flags & unitbuf)es distinta de cero, lo que significa que cualquier salida enviada a estos objetos de flujo se descarga inmediatamente en el sistema operativo. También wcerr.tie() == &wcoutes decir, wcerr.tie()devuelve, lo &wcoutque significa que wcout.flush()se ejecuta antes de cualquier operación de salida wcerr.

El "wc" en se wcerr refiere a "carácter ancho" y "err" significa "error", por lo tanto wcerr significa "error de carácter ancho". El wcerrobjeto se utiliza junto con el operador de inserción (<<) para mostrar un flujo de caracteres. La sintaxis general es:

 wcerr << varName;

o

 wcerr << "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):

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

Ejemplo: ¿Cómo funciona wcerr?

 #include #include using namespace std; int main() ( char fileName() = "data.txt"; wifstream infile(fileName); if(infile) wcout << infile.rdbuf(); else wcerr << "Error while opening the file " << fileName << endl; return; )

Cuando ejecute el programa, la salida será: (si el archivo no se pudo abrir)

 Error al abrir el archivo data.txt

Articulos interesantes...