[iostream] Surcharge d'un streambuf pour cout
Hello tout le monde,
Ca fait un petit moment que je suis bloqué sur un problème de surcharge.
Mon but est de capter tout ce qui est écrit sur std::cout et de le rediriger vers un stream perso, en prenant soin d'ajouter la date à chaque fois qu'une nouvelle ligne est trouvée (ce stream est ensuite écrit dans un fichier).
Pour celà, je cherche dériver un stringbuf (ou streambuf) et surcharger la function int_type sputc ( char_type c ), qui est la fonction la plus basique qui écrit dans le stream. Ensuite je redéfinis le streambuf de std::cout avec mon streambuf personnalisé : cout.rdbuf(&mybuf);
Mon problème est que je n'arrive pas à faire en sorte que cout utilise ma fonction surchargée de sputc plutot que celle de base. Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11
| class LoggerStringbuf : public stringbuf
{
protected:
int_type sputc(char_type _Ch)
{
cerr << "coucou\n";
return stringbuf::sputc(_Ch);
}
}; |
Merci d'avance !!!