J'ai donc un programme C++, qui normalement lors de l'exécution écrit des choses dans un fichier journal. Ceci est fait en utilisant un fstream. Cependant, maintenant je veux inclure des fonctionnalités pour désactiver la journalisation. Essentiellement, mon code ressemble à ceci:Rediriger C++ fstream
bool isLogging;
fstream* logFilePtr;
tout au long de mon code, il y a un tas de déclarations comme:
(*logFilePtr) << " Kernel call time in seconds: " << kTime << endl;
...
Maintenant, si le « isLogging » est vrai, je ne veux pas que ces imprimer. Je pourrais juste les entourer d'un tas de déclarations if, mais je préférerais quelque chose de plus propre que ça. Je pensais qu'il y avait un moyen de prendre un flux C++ et de le rediriger vers "rien" de sorte que lorsque l'opérateur < < est utilisé, rien ne s'imprime.
Est-ce que quelqu'un sait comment rediriger le flux, ou avez d'autres idées sur la façon de gérer cela de façon élégante?
Merci, Colin
Sous les fenêtres, vous pouvez utiliser nul pour le même effet –