<分区>
我试图在 C++ 应用程序中使用 system()
如果我这样做的话效果很好:
system("notepad");
但是当我尝试这样做时它会出错:
cin >> cmdlol;
system(cmdlol);
错误:
cannot convert 'std::string {aka std::basic_string}' to 'const char*' for argument '1' to 'int system(const char*)'|
<分区>
我试图在 C++ 应用程序中使用 system()
如果我这样做的话效果很好:
system("notepad");
但是当我尝试这样做时它会出错:
cin >> cmdlol;
system(cmdlol);
错误:
cannot convert 'std::string {aka std::basic_string}' to 'const char*' for argument '1' to 'int system(const char*)'|
最佳答案
cmdlol
似乎是 std::string
,不能隐式转换为 const char*
。和 std::system
只接受 const char*
作为它的参数,这就是编译器提示的原因。
你可以使用 std::basic_string::c_str()
明确地。
system(cmdlol.c_str());
关于为什么 system("notepad");
运作良好,"notepad"
是一个 string literal使用 const char[8]
类型(包括空字符),请注意它不是 std::string
并且在传递时可能会衰减为 const char*
到 std::system
。
关于c++ - 在 C++ 中调用 system() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37318670/