Здравствуйте
у меня следующая проблема... есть некий класс, у которого есть метод print()
исторически так сложилось, что внутри этого метода используется printf()
который пишет в stdout и менять это нельзя
у меня GUI морда, которая использует этот класс. Мне надо получить
в какую-нибудь переменную вывод этого метода...
пробовал вот таким способом:
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
ios::sync_with_stdio(true);
streambuf* cout_buf = cout.rdbuf();
stringbuf my_buf;
cout.rdbuf(&my_buf);
cout << "Hello1" << endl;
printf( "Hello2\n" );
cout.rdbuf( cout_buf );
return 0;
}
но при этом Hello2 не попадает в my_buf

(
есть вариант сделать FILE f* = freopen( "text_file.txt", "wt", stdout)
тогда вывод всех printf() пойдет в файл... а после его прочитать..
но как-то это мне не нравится
неужели нельзя перехватить вывод printf() минуя файл?
помогите советом, плиз!