Redireccionamiento en C ++
#include <iostream>
#include <fstream>
using namespace std;
void foo(){
streambuf *psbuf;
ofstream filestr;
filestr.open ("test.txt");
psbuf = filestr.rdbuf();
cout.rdbuf(psbuf);
}
int main () {
foo();
cout << "This is written to the file";
return 0;
}
¿Cout escribe en el archivo dado?
Si no, ¿hay alguna manera de hacerlo sin enviar las variables a foo, comonew
?
actualizar :
No puedo usar una solución que use class o global, por lo que algunos pueden darme una solución que use new. También pasando de main a foo
streambuf *psbuf;
ofstream filestr;
debería funcionar bien?
Estoy tratando de hacer esto pero no funciona. Le paso el flujo a foo para que exista en el main para que no termine cuando foo termine.
void foo(streambuf *psbuf){
ofstream filestr;
filestr.open ("test.txt");
psbuf = filestr.rdbuf();
cout.rdbuf(psbuf);
}
int main () {
streambuf *psbuf
foo(psbuf);
cout << "This is written to the file";
return 0;
}