Buenas tengo un problemilla porque quiero redireccionar la salida estandar dentro de un programa y luego volverla a dejar como estaba originalmente. Sé que esto se puede hacer de forma externa al programa, con el operador <, pero necesito hacer una redirección dentro y otra fuera. El problema que tengo es que consigo hacer la redirección a un fichero sin problema, pero no consigo volverla a dejar como estaba originalmente.
Código que tengo, NO FUNCIONA.
#include <fstream>
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
FILE *valor;
FILE **valor2;
cout << "This is going to the standard output stream" << endl;
valor=&(*stdout);
valor=freopen("pia.txt", "w", stdout);
cout << "This is going to michael.txt file" << endl;
cout << "Hola soy Jorge Vega" << endl;
stdout=*valor2;
cout << "Donde va esto" << endl;
return 0;
}