编辑: std::vector<std::__cxx11::basic_string<char> >' 到 'std::__cxx11::string' aka 'std::_

Posted

技术标签:

【中文标题】编辑: std::vector<std::__cxx11::basic_string<char> >\' 到 \'std::__cxx11::string\' aka \'std::__cxx11::basic_string<char>\'" :我不能保存[重复]【英文标题】: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 失败示例,您甚至可以自己找出错误。 【参考方案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。

以上是关于编辑: std::vector<std::__cxx11::basic_string<char> >' 到 'std::__cxx11::string' aka 'std::_的主要内容,如果未能解决你的问题,请参考以下文章

错误:没有匹配函数调用‘std::vector<std::__cxx11::basic_string<char> >::push_back(int&)’

如何在 C++17 中将 std::string 转换为 std::vector<std::byte>?

如何避免 std::vector<> 初始化其所有元素?

cv::Mat_ 到 std::vector 的转换

std::vector 和移动语义

使用 std::vector 链接错误