Redirecting in 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;
}

Schreibt cout in die angegebene Datei?

Wenn nicht, gibt es eine Möglichkeit, dies zu tun, ohne die Variablen an foo zu senden, wie z. B.new?

aktualisiere :

Ich kann keine Lösung verwenden, die class oder global verwendet, also kann mir plz eine Lösung geben, die new verwendet. Auch die Übergabe von Haupt zu foo

streambuf *psbuf;
ofstream filestr;

Sollte richtig funktionieren?

Ich versuche dies zu tun, aber es funktioniert nicht? Ich übergebe den Stream an foo, damit er in der Hauptsache existiert und nicht endet, wenn foo fertig ist.

 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;
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage