[solved]cout, clog oder cerr abfangen?
-
Hallo,
ich bin gerade dabei zu versuchen irgendwie die standard streams cout, clog und cerr zu ersetzen, bekomm es aber nicht hin.
Soweit bin ich:
#include <iostream> using namespace std; template <class charT, class Traits=char_traits<charT> > class OStreamLog : public basic_ostream<charT,Traits> { public: OStreamLog(basic_streambuf<charT,Traits>* sb) : basic_ostream<charT,Traits>(sb) { } }; int main(int argc, char* argv[]) { OStreamLog<char, char_traits<char>> o(clog.rdbuf()); clog = o; // Error, den ich nicht verstehe (*) }(*) Error 1 error C2249: 'std::basic_ios<_Elem,_Traits>::operator =' : no accessible path to private member declared in virtual base 'std::basic_ios<_Elem,_Traits>' c:\programme\microsoft visual studio 8\vc\include\ostream 581

Ich müsste dann noch von de Klasse OStreamLog den << Operator überladen. Wenn das nur gehen würde...

MfG
Firebyte
-
Ui war ziemlicher mist, was ich da versucht hab ^^ (hab wenig geschlafen
)So gehts...
#include <iostream> using namespace std; class OStreamLog : public streambuf { public: OStreamLog() { } streamsize xsputn(const char *pChar, streamsize n) { cout << "Log: " << pChar << endl; return streambuf::xsputn(pChar, n); } }; int main(int argc, char* argv[]) { OStreamLog o; clog.rdbuf(&o); }
-
Du kannst deine Beiträge auch editieren...mal so btw 