Interception de cout

Le
Yann Renard
Bonjour,

est il possible d'intercepter les appels aux opérateurs << de std::cout
et std::cerr dans un objet "custom" ?

Merci d'avance,
Yann Renard
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel Decima
Le #1066303
Bonjour,

est il possible d'intercepter les appels aux opérateurs << de std::cout
et std::cerr dans un objet "custom" ?


Que veux tu faire exactement ? rediriger les sorties de std::cout et
std::cerr par exemple ? Dans ce cas, ca peut ressembler a ceci:

int main() {
std::streambuf* oldOutBuf = std::cout.rdbuf() ;
std::ofstream oufFile( "toto.txt" ) ;
std::cout.rdbuf( outFile.rdbuf() ) ;

std::cout << "blah, blah..." << std::endl;

outFile.close() ;
std::cout.rdbuf( oldOutBuf ) ;
}

L'idee, c'est qu'on peut remplacer le streambuf d'un stream existant
par un autre, en prenant la precaution de remettre l'original en place
apres.

Publicité
Poster une réponse
Anonyme