我有一个接受 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/