连接两个流函数c++



我有两个函数:

Get (std::ostream* os) and把(std:: istream&)

get函数的方式是,它有多个流,从中收集数据并通过输出流os发送出去。

另一方面,

Put将输入流中的数据写入多个流中,这些流最终存储数据。

现在,我想写一段代码来使用get获取数据,并对该数据进行PUT操作。

但是,我不确定如何写入istream或如何实现这段连接器代码。我刚开始使用流,我也在尝试理解它们。如有任何帮助,不胜感激。

谢谢,Sethu

看起来,您想创建一些将写入Get()std::ostreamPut()std::istream的数据通道。要做到这一点,你需要编写一个合适的流,它可能需要处理连接多个线程。如果从Get()返回后,从Get()写入的流中读取数据就足够了,那么您可以直接写入std::ostringstream,并使用std::istringstream将写入的字节提供给Put()。我猜你想要更直接的联系,并描述一下一般的方法。

流的底层机制是在流缓冲区中实现的,即从std::streambuf派生的类(或者,如果你想支持其他字符类型,如wchar_tchar32_t,可以使用类模板std::basic_streambuf)。要重写的关键函数是

  • overflow(int_type),当流缓冲区的缓冲区已满时,为输出流调用。
  • sync(),当输出流的缓冲区需要刷新时调用。
  • underflow(),当输入流的缓冲区耗尽时调用。

如何实现处理的细节稍微复杂一些。我已经写了很多答案,解释了创建流缓冲区的各种用途。对于连接输出流和输入流的流,请看下面的答案:

相关内容

  • 没有找到相关文章

最新更新