【发布时间】:2014-12-13 21:47:47
【问题描述】:
我正在重载我的 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>'))
【问题讨论】:
-
让我为你改述一下;)
-
你为什么有一个 stringstream 成员,这应该做什么?
标签: c++ file ifstream stringstream istringstream