我已經有過關於流和東西的問題的多個問題,但想了一下後,我得出結論,我需要的是一個自定義刷新類型。我想讓我的流在刷新一行時刷新。它節省了必須輸入std :: endl。有沒有可能實現這一點?我正在使用帶有自定義字符串的ostream。自定義流刷新類型
Q
自定義流刷新類型
1
A
回答
1
我相信,所有這將需要被重寫ostream::put(char)
,但不可以引用我這句話:
template <typename Ch>
class autoflush_ostream : public basic_ostream<Ch> {
public:
typedef basic_ostream<Ch> Base;
autoflush_ostream& put(Ch c);
};
template <typename Ch>
autoflush_ostream<Ch>& autoflush_ostream<Ch>::put(Ch c) {
Base::put(c);
if (c == "\n") {
flush();
}
return *this;
}
您可能需要重寫每個方法和函數,它是在定義的字符的字符或序列STL。他們基本上都會做同樣的事情:調用超類定義的方法/函數,檢查是否打印了新行,如果是,則刷新。
+0
basic_ostream :: put不是虛擬的,因此除非對象的靜態類型爲autoflush_ostream(即autoflush_ostream對象,引用或指針),否則不會使用派生類的版本。特別是,這意味着'stream <<'\ n''不能調用你的put。 – 2010-12-11 20:17:29
+0
教我選擇睡眠模式。 – outis 2010-12-12 20:24:34
相關問題
- 1. 刷新構建定義處理參數自定義類型
- 2. 從自定義ListView類中刷新ListView
- 3. 自定義ListView不刷新
- 4. Android - 自定義刷卡刷新佈局
- 5. 自定義類型
- 6. Raphael.js自定義元素和新類型?
- 7. 更新模型時刷新sapui5中的自定義控件
- 8. 流利的NHibernate bools的自定義類型約定
- 9. 固定鏈接自定義類型後與自定義分類
- 10. 防止自定義ListView刷新滾動。我想停止刷新
- 11. 自定義UITableView不刷新單元格
- 12. Android自定義ListView刷新問題
- 13. UITableView自定義單元格不刷新
- 14. 刷新自定義infowindow谷歌地圖
- 15. 重繪/刷新自定義皮膚
- 16. 定義自定義數據類型
- 17. 錯誤地定義自定義類型?
- 18. 休眠自定義類型定義
- 19. Qt:定義自定義事件類型
- 20. 模型綁定自定義類型
- 21. 自定義地圖的印刷:類型Clojure中
- 22. MVC3 AllowHtml自定義類型
- 23. C++自定義類型
- 24. 自定義類型的QByteArray
- 25. 自定義類型在V3
- 26. 自定義引用類型
- 27. 編輯自定義類型
- 28. Laravel:自定義模型類
- 29. Go,init自定義類型
- 30. 自定義數據類型?
請原諒我,但是爲什麼輸入'endl'要困難幾次,幾乎是從頭開始寫新流? – 2010-12-11 16:36:00
這不是因爲它有可能出於興趣,如果是的話,如何。 – Jookia 2010-12-11 16:37:38