#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 запись в данный файл?Перенаправление в C++
Если нет, есть ли способ сделать это без отправки переменных в foo, например new
?
обновление:
Я не могу использовать решение, которое использует класс или использует глобальные так плз могут некоторые дать мне решение, использовать новый. Также прохождение от главного к foo
streambuf *psbuf;
ofstream filestr;
должно работать правильно?
Я пытаюсь сделать это, но не работает? Я передаю поток в foo, так что он существует в главном, так что он не закончится, когда закончится foo.
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;
}
Мне кажется, что это не так, но ваш вопрос остается в силе :-) – Johnsyweb
@johnsyweb Oh правой filestr разрушается. Я не читал внимательно ... – log0