将ostream的内容复制到另一个ostream

时间:2014-05-26 06:30:44

标签: c++ c++11 ostream

我正在寻找一种方法将内容从一个ostream复制到另一个std::ostringsteam oss; oss << "stack overflow"; { //do some stuff that may fail //if it fails, we don't want to create the file below! } std::ofstream ofstream("C:\\test.txt"); //copy contents of oss to ofstream somehow 。我有以下代码:

{{1}}

感谢任何帮助!

1 个答案:

答案 0 :(得分:5)

有什么问题
ofstream << oss.str();

如果你想使用ostream基类,那么这是不可能的,因为就ostream而言,所写的任何内容都将永远消失。你将不得不使用类似的东西:

// some function
...
  std::stringstream ss;

  ss << "stack overflow";
  ss.seekg(0, ss.beg);

  foo(ss);
...

// some other function
void foo(std::istream& is)
{
  std::ofstream ofstream("C:\\test.txt");
  ofstream << is.rdbuf();
}