C ++ wclog - Biblioteca C ++ Padrão

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

Diferença entre clog e wclog

entupir usuários 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. wclog usa wchar_t (caractere largo) e pode ser usado para caracteres Unicode.

Diferença entre wcerr e wclog

wcloge wcerr, ambos estão associados a stderr, mas difere wcerrno sentido de que os fluxos de entrada wclogsão armazenados em buffer e não automaticamente vinculados a wcout.

A saída com buffer é mais eficiente do que a saída sem buffer. No caso de saída em buffer, toda a saída é salva em uma variável e gravada no disco de uma vez. Para saída sem buffer, temos que continuar gravando no disco.

A saída em buffer não é preferida para erros críticos. Em caso de falha do sistema, pode ocorrer uma situação em que a saída ainda estava no buffer e não foi gravada no disco e a mensagem de erro não pode ser recuperada. Não podemos perder dados de erro em caso de falha do sistema, por isso continuamos gravando os erros críticos no disco, mesmo que seja mais lento.

wclogé comumente usado para fins de registro. Para registro de eventos não críticos, a eficiência é mais importante, então wclog é preferível wcerr.

declaração wclog

 extern ostream wclog;

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

O wclogobjeto tem a garantia de ser inicializado durante ou antes da primeira vez que um objeto do tipo ios_base::Inité construído. wclognão está vinculado a nenhum outro fluxo.

O "wc" em wclogse refere a "caractere largo", portanto wclogsignifica "log de caractere largo". o

wclogobjeto é usado junto com o operador de inserção (<<) para exibir um fluxo de caracteres. A sintaxe geral é:

 wclog << varName;

ou

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

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

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

Artigos interessantes...