gpt4 book ai didi

C++ 将 ifstream 管道化为 stringstream

转载 作者:行者123 更新时间:2023-11-30 02:42:04 26 4
gpt4 key购买 nike

我正在重载我的 istream 运算符,所以我可以用我的对象替换 std::cin。我知道我必须向它提供一个空字符串流才能使最终输出正常工作。

我想像这样将 std::ifstream 馈送到 std::stringstream 中:

while(ifs >> ss) {}

这可能吗?这是一个示例原型(prototype)代码:

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>'))

最佳答案

只需这样做:

 if(ifs){
db.iss << ifs.rdbuf();
ifs.close();
}

关于C++ 将 ifstream 管道化为 stringstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27463974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com