【发布时间】:2020-11-07 14:34:39
【问题描述】:
我有一个函数 do_something 从流中读取无符号字符。
可以从给定文件名的文件创建流。或者可以通过将给定字符串视为数据来创建它。我想在这两种情况下都重用这个函数。
下面的代码在第二种情况下给出了一个错误:“error C2664: 'do_something: cannot convert argument 1 from 'std::basic_istringstream' to 'std::basic_istream'”。 p>
这样做的正确方法是什么?
static void do_something(std::basic_istream<unsigned char>& in)
{
in.get();
}
static void string_read(unsigned char* in)
{
std::basic_ifstream<unsigned char> file(std::string("filename"));
do_something(file);
std::basic_istringstream<unsigned char> str(std::basic_string<unsigned char>(in));
do_something(str);
}
【问题讨论】:
标签: c++ ifstream istringstream