#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
?
更新:
我不能使用,使用類或使用的解決方案全球化,所以PLZ可以將某些 給我使用了新的解決方案。還將主要傳遞給foo
streambuf *psbuf;
ofstream filestr;
應該正常工作嗎?
我想這樣做,但它不工作? 我將流傳遞給foo,所以它存在於main中,所以當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 2010-09-08 11:50:01
@johnsyweb哦對filestr有效被銷燬。我沒有仔細閱讀...... – log0 2010-09-08 11:55:26