我知道在std::ostream
中,我可以使用自定义streambuf
通过在构造函数中说明:
std::ofstream temp;
temp.open("file.txt", std::ios_base::in);
std::ostream example(temp.rdbuf());
以及之后设置(前两行相同,但最后一行更改为:
std::ostream example;
example.rdbuf(temp.rdbuf());
我的问题是:如何在std::ofstream
中执行此操作?我希望能够覆盖我自己的自定义类中xsgetn
中实现的方法xsputn
和std::streambuf
,并在我的ofstream
中使用它,但是,我自己写的不够自定义ofstream
我不确定如何这样做。
答案 0 :(得分:0)
具体的文件流类有自己的rdbuf()
方法,它接受0个参数,隐藏从虚拟基础rdbuf()
继承的另一个std::basic_ios
方法。限定名称以查找基类方法应该有效:
std::ofstream ofs;
ofs.basic_ios<char>::rdbuf(example.rdbuf());