我看過cout.rdbuf()
,例如here。這意味着,流cout
有一個與它關聯的流緩衝區,在我們刷新它之前它是非空的。什麼時候可以std :: cout緩衝區是非空的?
但是,我怎麼能在cout被刷新之前窺視cout的cout流緩衝區? 即
cout << "I want to read this before this get flushed";
cout.UnknownFunction(); //this would save the buffer into a string variable
cout << flush;
但在代碼的目前的形式,一切都將在第一行後刷新到屏幕上..
那麼,什麼樣的結構允許我到COUT緩衝區內偷看?
PS。即時通訊在Windows7上運行VC++ 2010
閱讀[C++流系統的參考](http://en.cppreference.com/w/cpp/io)? –
我試過了,失敗了..也許需要試試更多 –
David的(現在刪除的)答案是獲得緩衝區的方法。但是,如果它被刷新,它將是空的。您可以檢查['ios_base'格式標誌](http://en.cppreference.com/w/cpp/io/ios_base/fmtflags)以查看是否設置了'unitbuf',在這種情況下,輸出在每次輸出操作。 –