【发布时间】:2011-02-14 11:38:25
【问题描述】:
我有一个函数,它以 std::istream& 作为参数并将转换后的流写入 std::ostream&。
另一方面,我有另一个接受向量参数的函数。
我的目标是将第一个函数的输出传递给第二个函数。
有什么开箱即用的方法吗? 不然怎么轻松实现呢?
谢谢
编辑:这是 2 个函数签名:
functionA(std::istream& _in, std::ostream& _out);
functionB(std::vector<unsigned char>& data);
调用者看起来像:
std::vector<unsigned char> data;
std::istrstream stream_in("input message");
std::ovectorstream stream_out(data); // ???
functionA(stream_in, stream_out);
functionB(stream_out.vector());
【问题讨论】:
-
这两个函数签名/标题是什么?
-
有了更多信息,我可以让我的答案更加具体。一些示例代码带有“如何将 X 转换为 Y?”的注释。在适当的地方会有帮助
-
如果它是你传递给第二个函数的第一个函数的结果,你为什么不在第一个函数中直接生成一个
vector? -
您不能将输出流转换为类似矢量的输入。这将需要某种生成器概念,这在 C++ 中不存在。很难说解决方案是什么,不知道这些函数到底是什么进出。
-
@Marcelo - 如果你可以强制输出流是一个 std::stringstream 它是微不足道的