我正在重载我的 istream 运算符,所以我可以std::cin
用我的对象替换。我知道我必须为它提供一个空的字符串流才能使最终输出正常工作。
我想像这样std::ifstream
输入一个std::stringstream
:
while(ifs >> ss) {}
这可能吗?这是一个示例原型代码:
friend istream & operator >> (istream & is, Database & db)
{
ifstream ifs;
ifs.open(db.inputFilename_, ios::in | ios::binary);
if (!ifs.is_open())
{
cout << "Couldn't read " << db.inputFilename_ << endl;
return is;
}
while (ifs >> db.iss)
{}
ifs.close()
return db.iss;
}
我对任何以“使用 Boost”开头的答案都不感兴趣 :) 这是一个纯粹的标准 C++ 项目。感谢您的任何帮助或指点。
现在我得到:
error: invalid operands to binary expression ('ifstream' (aka 'basic_ifstream<char>') and 'istringstream' (aka 'basic_istringstream<char>'))