连接两个流函数 c++
Connecting two streaming functions c++
我有两个功能:
获取 (std::ostream* os) 和
放 (std::istream& 是)
get 函数的方式是,它在下面有多个流,从中收集数据并通过输出流将其发送出去 os。
另一方面,将输入流中的数据写入多个流,最终存储数据。
现在,我想编写一段代码来使用 GET 获取数据并对该数据执行 PUT。
但是,我不确定如何写入 istream 或如何实现这段连接器代码。我刚开始使用流,我也试图理解它们。任何帮助将不胜感激。
谢谢,
塞图
看来,您想创建一些东西,将写入 Get()
的 std::ostream
的数据传送到 Put()
的 std::istream
。为此,您需要编写一个合适的流,它可能需要处理连接多个线程。如果从 Get()
返回后从 Get()
写入的流中读取数据就足够了,您可以只写入 std::ostringstream
并使写入的字节可用于 Put()
使用 std::istringstream
。我假设您想要更直接的联系并描述一般方法。
流的底层机制在流缓冲区中实现,即 classes 从 std::streambuf
派生(或者,如果你想支持其他字符类型,如 wchar_t
或 char32_t
,class 模板 std::basic_streambuf
。要覆盖的关键函数是
overflow(int_type)
每当流缓冲区的缓冲区已满时调用输出流。
sync()
当需要刷新流的缓冲区时调用输出流。
underflow()
如果流的缓冲区被耗尽,则为输入流调用。
如何实现处理的细节有点复杂。我写了很多解释创建流缓冲区的各种用途的答案。对于将输出流连接到输入流的流,请查看 this answer.
我有两个功能:
获取 (std::ostream* os) 和 放 (std::istream& 是)
get 函数的方式是,它在下面有多个流,从中收集数据并通过输出流将其发送出去 os。
另一方面,将输入流中的数据写入多个流,最终存储数据。
现在,我想编写一段代码来使用 GET 获取数据并对该数据执行 PUT。
但是,我不确定如何写入 istream 或如何实现这段连接器代码。我刚开始使用流,我也试图理解它们。任何帮助将不胜感激。
谢谢, 塞图
看来,您想创建一些东西,将写入 Get()
的 std::ostream
的数据传送到 Put()
的 std::istream
。为此,您需要编写一个合适的流,它可能需要处理连接多个线程。如果从 Get()
返回后从 Get()
写入的流中读取数据就足够了,您可以只写入 std::ostringstream
并使写入的字节可用于 Put()
使用 std::istringstream
。我假设您想要更直接的联系并描述一般方法。
流的底层机制在流缓冲区中实现,即 classes 从 std::streambuf
派生(或者,如果你想支持其他字符类型,如 wchar_t
或 char32_t
,class 模板 std::basic_streambuf
。要覆盖的关键函数是
overflow(int_type)
每当流缓冲区的缓冲区已满时调用输出流。sync()
当需要刷新流的缓冲区时调用输出流。underflow()
如果流的缓冲区被耗尽,则为输入流调用。
如何实现处理的细节有点复杂。我写了很多解释创建流缓冲区的各种用途的答案。对于将输出流连接到输入流的流,请查看 this answer.