C++ 中将 cout 的内容输出到文件

C++ 中将 cout 的内容输出到文件

cout 默认的输出是标准输出(控制台),那么我们能否通过设置使得 cout 的输出到文件里面了?

答案肯定是可以得,怎么做,下面我们来测试一下:

// redirecting cout's output thrrough its stream buffer
#include <iostream> // std::streambuf, std::cout
#include <fstream> // std::ofstream
int main () {
std::streambuf *psbuf, *backup;
std::ofstream filestr;
filestr.open ("test.txt");
backup = std::cout.rdbuf(); // back up cout's streambuf
psbuf = filestr.rdbuf(); // get file's streambuf
std::cout.rdbuf(psbuf); // assign streambuf to cout
std::cout << "This is written to the file";
std::cout.rdbuf(backup); // restore cout's original streambuf
filestr.close();
return 0;
}
/<fstream>/<iostream>

通过这样的简单设置我们就可以把 cout 的内容输出到文件了!


分享到:


相關文章: