我如何设置一个新的char数组作为fstream的filebuf的缓冲区,filebuf中有一个函数(setbuf),但它受到保护。在网络上搜索时,一些网站提到了fstream :: setbuf,但似乎不再存在。

谢谢

最佳答案

streambuf设计为使用模板方法模式进行自定义,其中公共方法不是虚拟的,子类通过实现非公共虚拟方法来自定义行为。

在当前情况下,调用setbuf的公共方法称为pubsetbuf。

但是请注意,basic_filebuf的setbuf的实现相当宽松地指定:唯一的保证是setbuf(0,0)使流成为无缓冲的。在其他情况下,效果是实现定义的。

07-24 17:49