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
wclog
e wcerr
, ambos estão associados a stderr
, mas difere wcerr
no sentido de que os fluxos de entrada wclog
sã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 wclog
objeto tem a garantia de ser inicializado durante ou antes da primeira vez que um objeto do tipo ios_base::Init
é construído. wclog
não está vinculado a nenhum outro fluxo.
O "wc" em wclog
se refere a "caractere largo", portanto wclog
significa "log de caractere largo". o
wclog
objeto é 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