c++ - 如何将 ostream 转换为 basic_ostream<unsigned char>?

标签 c++

我有一个接受 basic_ostream 作为参数的方法

write_sth_to( basic_ostream<unsigned char> &s );

有什么方法可以将 std::cout(或任何 basic_ostream< char >)传递给它吗?谢谢。

最佳答案

如果我是你,我会写一个包装函数来处理它,因为你不能简单地转换一个 basic_ostream<char>basic_ostream<unsigned char> .像下面这样的东西可能会起作用(注意:未经测试的代码)

void wrapper(basic_ostream<char>& os)
{
    basic_stringstream<unsigned char> us;
    write_sth_to(us);
    transform(istream_iterator<unsigned char>(us),
              istream_iterator<unsigned char>(),
              ostream_iterator<char>(os, ""),
              char_to_unsigned_char
    );
}

其中函数 char_to_unsigned_char是你自己写的东西(我不知道你打算如何在这两种类型之间进行转换)。请记住这未经测试,但它可能会让您知道从哪里开始。

关于c++ - 如何将 ostream 转换为 basic_ostream<unsigned char>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19545873/

相关文章:

c++ - 为什么共享内存(在 ipc 中)不需要上下文切换?它是来自内核空间的内存映射到用户空间吗?

c++ - 如何开发一个类来使用模板和/或规则解析二进制文件

c++ - 模板类和 Friend 模板函数

c++ - 将动画应用于 openGL 中的对象

c++ - 如何知道我们的数组中存在三角形三元组?

c++ - 使用二进制搜索查找丢失的数字

c++ - 如何使用 CMake 3.15 查找和链接 CUDA 库?

c++ - 捕获捕获本地临时对象的 lambda 函数

c++ - 来自同一物理类的多重继承

c# - 如何确定鼠标是否指向光标下窗口的最大化按钮