2010-11-20 9 views
1

Souvent, lorsque j'écris des auteurs de fichiers ou des analyseurs en C++, je voudrais surveiller la progression de l'analyseur/analyseur dans le fichier lors de son écriture/lecture. À cette fin, je pensais à mettre en œuvre quelque chose comme:Comment surveiller les flux en C++

ostream_monitor my_monitor(&my_output_stream, &cout); 
my_monitor << my_variable; 

Cela aurait pour effet de produire ma_variable à my_output_stream, et aussi Cout, donc je peux le voir.

De même, il serait agréable d'avoir une version d'entrée du même:

istream_monitor my_monitor(&my_input_stream, &cout); 
my_monitor >> my_variable; 

Ce lirait le prochain jeton au large de my_input_stream, et l'utiliser pour mettre ma_variable, mais aussi tous les caractères de lecture de sortie à cout, donc je peux voir le flux comme il se lit.

Je pourrais aller de l'avant et essayer de faire des sous-classes de std :: istream et std :: ostream qui font cela, mais cela semble être une grande partie de l'ingénierie pour un outil de débogage qui peut être utile ou non. Je suis donc invité à demander:

Que faites-vous pour surveiller la progression d'un analyseur dans un fichier? Je suis intéressé à entendre toutes les solutions qui semblent plus simples à mettre en œuvre que celle ci-dessus.

Répondre