C++ 如何清除std::ostream

C++ 如何清除std::ostream,c++,C++,如何清除或清空std::ostream对象 我在这里找到的例子是stringstream stringstream m; m.str(""); 显然,这对ostream不起作用 编辑:根据要求,对于用法: 我在一个简单的秒表中使用ostream对象。跟踪慢函数的时间。 随着时间的推移,流对象变得越来越大,应用程序变得没有响应。所以这里我试图清除ostream对象。最好是在CStopUhr的构造函数中 static tstringstream fout;

如何清除或清空std::ostream对象

我在这里找到的例子是stringstream

stringstream m;
m.str("");
显然,这对ostream不起作用

编辑:根据要求,对于用法:

我在一个简单的秒表中使用ostream对象。跟踪慢函数的时间。 随着时间的推移,流对象变得越来越大,应用程序变得没有响应。所以这里我试图清除ostream对象。最好是在CStopUhr的构造函数中

static tstringstream fout;                         // fout to stringstream
//static tofstream fout(_T("SpooferTimeTrace.log); // fout to file 
static std::wostream fout(std::wcout.rdbuf());     // fout to cout

class CStopUhr
{
public:
    CStopUhr(tostream& os, LPCTSTR txt = _T(" Time: ")) 
     :_os(os) 
      { _os.clear(); _txt = txt; _dwStart = GetTickCount(); }
    ~CStopUhr()         
      { _os << _txt << (GetTickCount()-_dwStart) << _T("ms ") << std::endl; }
private:
    DWORD _dwStart;
    tostream& _os;
    tstring  _txt;
};

我看不出有什么好的理由让您这样做,但也许您可以直接干扰底层的
std::streambuf
对象,以碰撞put指针,直到缓冲区中不再有未完成的字符?

清空
ostream
意味着什么?你确定你指的不是
istream
(比如
std::cin
)?你认为空的ostream是什么样子?你到底想做什么。如果我错了,请纠正我,但不是
flush()
清除输出流中剩余的任何内容有效地清除它?也许可以告诉我们您想做什么,以便我们更好地理解您的意思?
 void testfunction()
 {
    CStopUhr suhr(fout, CString(__FUNCTION__);
    :
    ;
}