C++ 为什么错误E0413出现在C++;? #包括 #包括 #包括 #包括 使用名称空间std; int main() { string content=“video.mp4”; //下面的行出现错误 系统(“cd C:\\Users\\amans\\Documents&&”+内容); 返回0; }

C++ 为什么错误E0413出现在C++;? #包括 #包括 #包括 #包括 使用名称空间std; int main() { string content=“video.mp4”; //下面的行出现错误 系统(“cd C:\\Users\\amans\\Documents&&”+内容); 返回0; },c++,C++,我不明白为什么会出现错误E0413=系统()上没有合适的从“std::basic_string”到“const char*”的转换函数。请帮助出现此错误是因为您将字符串和常量字符*混合编码(这不是您的错),并且只能从常量字符*隐式转换为字符串,而不能以其他方式进行转换 因此,您需要使用std::string::c_str进行转换 #include <iostream> #include <windows.h> #include <list> #include

我不明白为什么会出现错误E0413=
系统()上没有合适的从“std::basic_string”到“const char*”的转换函数。请帮助

出现此错误是因为您将字符串和常量字符*混合编码(这不是您的错),并且只能从常量字符*隐式转换为字符串,而不能以其他方式进行转换 因此,您需要使用std::string::c_str进行转换

#include <iostream>
#include <windows.h>
#include <list>
#include <string>

using namespace std;

int main()
{
    string content = "video.mp4";
    //error occurring on the line beneath
    system("cd C:\\Users\\amans\\Documents && " + content);
    return 0;
}

出现此错误是因为您将字符串和常量字符*(这不是您的错)混合在一起编写代码,并且只能从常量字符*隐式转换为字符串,而不能以其他方式转换 因此,您需要使用std::string::c_str进行转换

#include <iostream>
#include <windows.h>
#include <list>
#include <string>

using namespace std;

int main()
{
    string content = "video.mp4";
    //error occurring on the line beneath
    system("cd C:\\Users\\amans\\Documents && " + content);
    return 0;
}

代码只回答不推荐的问题。建议至少做一个简短的解释。强制转换是多余的,
std::string::operator+
的结果已经是
std::string
code-only答案不推荐。至少推荐一个简短的解释。强制转换是多余的,
std::string::operator+
的结果已经是
std::string
你试过
content.c_str()
可能重复的BTW,一个
系统内的
cd
很可能会保持你的状态不变。@basilestrynkevitch是的,我知道这一点。我必须制作一个可以处理多个目录的程序。你是否尝试过
content.c_str()
顺便说一句,
系统中的
cd
很可能会保持你的目录不变。@BasileStarynkevitch是的,我知道。我必须做一个程序,其中与目录的数量工作。