【问题标题】:EDIT : std::vector<std::__cxx11::basic_string<char> >' to 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'}" : I can't save [duplicate]编辑: std::vector<std::__cxx11::basic_string<char> >' 到 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'}" :我不能保存[重复]
【发布时间】:2019-03-03 20:43:03
【问题描述】:

编辑:在 Remy Lebeau 的评论之后,我能够修复我的程序的一部分。 但是现在,我收到了这个错误:“错误:无法将 'siteName' 从 'std::vector >' 转换为 'std::__cxx11::string' {aka 'std::__cxx11::basic_string'}”

又是我……又是我…… 我仍在为那个客户经理工作,我遇到了另一个问题。 每当我尝试使用 saveFunction()

saveFunction(ofstream& save, string site, string url, string username, string password)
{
    save << site << endl;
    save << url << endl;
    save << username << endl;
    save << password << endl;

}

我已经创建了将变量值保存在我的文本文件中,我得到了这个奇怪的错误(标题)。

现在这完全阻止了我,因为没有它,一旦程序 return main() 被调用,程序中编写的所有内容都会消失,因此程序毫无用处。

这是我的完整代码: https://pastebin.com/dFxjqXyE

#include <iostream> ...

感谢所有愿意花时间帮助我的人。

-安吉-伊曼纽尔

【问题讨论】:

  • 不要将您的问题编辑为新问题。而是提出一个新问题,但请确保在问题本身中提供minimal reproducible example。如果您将问题简化为 Minimal 失败示例,您甚至可以自己找出错误。

标签: c++ save ofstream


【解决方案1】:

通过引用传递ofstream 对象。这是一个不可复制的资源。

saveFunction(ofstream& save, string site, string url, string username, string password)

“复制”I/O 流没有意义。想想你的物理打印机,你可以共享打印机,但不能“复制”打印机

【讨论】:

  • 您好,感谢您的回答,这确实解决了此处所述的问题。但是它创建了另一个,现在我得到“错误:无法将 'siteName' 从 'std::vector<:__cxx11::basic_string>>' 转换为 'std::__cxx11::string'”但只有在 siteName 参数上。期待您的回答。
  • @Solar 您正在尝试传递 vector&lt;string&gt; 变量,其中需要单个 strings。您需要从每个vector 中提取所需的string 并单独传递它们,或者更改参数以获取整个vectors。
猜你喜欢
  • 2018-03-11
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
相关资源
最近更新 更多