Clog C ++ - Bibliothèque standard C ++

L'objet clog en C ++ est un objet de classe ostream. Il est associé au flux de sortie d'erreur C standard stderr.

cloget cerr, les deux sont associés à stderr, mais il en diffère cerren ce sens que les flux dans clogsont mis en mémoire tampon et ne sont pas automatiquement liés avec cout.

La sortie tamponnée est plus efficace que la sortie sans tampon. Dans le cas d'une sortie tamponnée, toute la sortie est enregistrée dans une variable et écrite sur le disque en même temps. Pour une sortie sans tampon, nous devons continuer à écrire sur le disque.

La sortie en mémoire tampon n'est pas préférée pour les erreurs critiques. En cas de panne du système, il peut arriver une situation où la sortie était toujours dans la mémoire tampon et n'a pas été écrite sur le disque et le message d'erreur ne peut pas être récupéré. Nous ne pouvons pas nous permettre de perdre des données d'erreur en cas de panne du système, nous continuons donc à écrire les erreurs critiques sur le disque même s'il est plus lent.

clogest couramment utilisé à des fins de journalisation. Pour la journalisation des événements non critiques, l'efficacité est plus importante et clogest donc préférable à cerr.

déclaration de colmatage

 obstruction externe de l'ostream;

Il est défini dans le fichier d'en-tête "> fichier d'en-tête.

L' clogobjet est assuré d'être initialisé pendant ou avant la première construction d'un objet de type ios_base::Init. clogn'est lié à aucun autre flux.

Le "c" dans le sabot fait référence au "caractère", par conséquent le sabot signifie "journal des caractères".

L'objet sabot est utilisé avec l'opérateur d'insertion (<<) afin d'afficher un flux de caractères. La syntaxe générale est:

 obstruer << varName;

ou

 clog << "Some String";

L'opérateur d'extraction peut être utilisé plus d'une fois avec une combinaison de variables, de chaînes et de manipulateurs (comme endl):

 clog << var1 << "Some String" << var2 << endl;

Exemple: comment fonctionne le sabot?

 #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; )

Dans ce programme, le sabot est utilisé pour diffuser les données du journal car l'erreur dans ce cas n'est pas critique pour l'application. Ainsi, l'utilisation de la sortie tamponnée du sabot est plus efficace

Lorsque vous exécutez le programme, la sortie sera (s'il y a une erreur lors de l'ouverture du fichier):

 Erreur lors de l'ouverture du fichier data.txt

Articles intéressants...