c – 编写ostream过滤器?

我想编写一个简单的ostream,它包装一个参数ostream,并在将流传递给参数流之前以某种方式更改流.转换很简单,如更改字母或删除单词

从ostream继承的简单类会是什么样的?我应该覆盖哪些方法?

最佳答案 std :: ostream不是实现过滤的最佳位置.它没有适当的虚函数来让你这样做.

您可能想要编写一个派生自std :: streambuf的类,其中包含一个包装的s​​td :: ostream(或一个包装的s​​td :: streambuf),然后使用此std :: streambuf创建一个std :: ostream.

std :: streambuf有一个虚函数溢出,你可以覆盖它并用它来改变字节,然后再将它们传递给包装的输出类.

点赞