C ++ wcerr - Biblioteca padrão C ++

O objeto wcerr em C ++ é um objeto da classe ostream. Ele está associado ao fluxo de saída de erro C padrão stderr.

Diferença entre cerr e wcerr

cerrusa char (caractere estreito) como tipo de caractere. Ele pode ser usado para caracteres ASCII e ANSI.

Para internacionalização, precisamos de strings Unicode que não cabem em char. wcerrusa wchar_t(caractere largo) e pode ser usado para caracteres Unicode.

Diferença entre wcout e wcerr

Os programadores iniciantes em C ++ usam coute wcoutpara exibir o erro usando a saída padrão para depurar seus programas, mas é sempre uma boa prática usar cerre wcerrexibir os erros.

Isso ocorre porque, em vez de mostrar o fluxo de erros na tela, você pode posteriormente alterar o fluxo de erros para gravar os erros em um arquivo.

declaração wcerr

 extern wostream wcerr; 

É definido no arquivo de cabeçalho "> arquivo de cabeçalho.

O wcerrobjeto tem a garantia de ser inicializado durante ou antes da primeira vez que um objeto do tipo ios_base::Inité construído. Depois que o wcerrobjeto é construído, a expressão (wcerr.flags & unitbuf)é diferente de zero, o que significa que qualquer saída enviada para esses objetos de fluxo é imediatamente liberada para o sistema operacional. Também wcerr.tie() == &wcoutie wcerr.tie()retorna o &wcoutque significa que wcout.flush()é executado antes de qualquer operação de saída wcerr.

O "wc" em wcerr se refere a "caractere largo" e 'err' significa "erro", portanto, wcerr significa "erro de caractere largo". O wcerrobjeto é usado junto com o operador de inserção (<<) para exibir um fluxo de caracteres. A sintaxe geral é:

 wcerr << varName;

ou

 wcerr << "Alguma String";

O operador de extração pode ser usado mais de uma vez com uma combinação de variáveis, strings e manipuladores (como endl):

 wcerr << var1 << "Alguma String" << var2 << endl;

Exemplo: Como funciona o 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; )

Quando você executa o programa, a saída será: (se o arquivo não puder ser aberto)

 Erro ao abrir o arquivo data.txt

Artigos interessantes...