c – 如何将istringstream和ifstream分配给istream变量?

c – 如何将istringstream和ifstream分配给istream变量?,第1张

概述我想要一个istream类型的变量,它可以保存文件的内容或字符串.我们的想法是,如果没有指定文件,那么istream类型的变量将被赋予一个字符串. std::ifstream file(this->_path) 和 std::istringstream iss(stringSomething); 至 std::istream is 我试过将它们分配给istream变量,就像我从其他从同一基类继承的 我想要一个istream类型的变量,它可以保存文件的内容或字符串.我们的想法是,如果没有指定文件,那么istream类型的变量将被赋予一个字符串.

std::ifstream file(this->_path)

std::istringstream iss(stringSomething);

std::istream is

我试过将它们分配给istream变量,就像我从其他从同一基类继承的对象那样,但是没有用.

如何将istringstream和ifstream分配给istream变量?

解决方法@H_404_31@ 基类指针可以指向派生类数据. std :: istringstream和std :: ifstream都是从std :: istream派生的,所以我们可以这样做:

//Note that std::unique_ptr is better that raw pointersstd::unique_ptr<std::istream> stream;//stream holds a file streamstream = std::make_unique<std::ifstream>(std::ifstream{ this->_path });//stream holds a stringstream = std::make_unique<std::istringstream>(std::istringstream{});

现在你只需要使用提取内容

std::string s;(*stream) >> s;
总结

以上是内存溢出为你收集整理的c – 如何将istringstream和ifstream分配给istream变量?全部内容,希望文章能够帮你解决c – 如何将istringstream和ifstream分配给istream变量?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1217377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存