C ++ clog - Biblioteca padrão C ++

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

cloge cerr, ambos estão associados a stderr, mas difere cerrno sentido de que os fluxos de entrada clogsão armazenados em buffer e não automaticamente vinculados a cout.

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.

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

declaração de entupimento

 obstrução externa do ostream;

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

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

O "c" em clog se refere a "caractere", portanto, clog significa "log de caracteres".

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

 entupir << varName;

ou

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

 entupir << var1 << "Alguma string" << var2 << endl;

Exemplo: Como funciona a obstrução?

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

Neste programa, clog é usado para transmitir os dados de log porque o erro, neste caso, não é crítico para o aplicativo. Portanto, o uso de saída com buffer de entupimento é mais eficiente

Ao executar o programa, a saída será (se houver erro ao abrir o arquivo):

 Erro ao abrir o arquivo data.txt

Artigos interessantes...