Mud*_*zay 2 c++ console system c++11
我尝试system()在c ++应用程序中使用,如果我这样做,它可以很好地工作:
system("notepad");
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这样做时它会出错:
cin >> cmdlol;
system(cmdlol);
Run Code Online (Sandbox Code Playgroud)
错误:
不能将'std :: string {aka std :: basic_string}'转换为'const char*'以将参数'1'转换为'int system(const char*)'|
son*_*yao 11
cmdlol似乎是std::string,它无法const char*隐式转换.并且std::system只接受const char*它的论点,这就是编译器抱怨的原因.
你可以std::basic_string::c_str()明确使用.
system(cmdlol.c_str());
Run Code Online (Sandbox Code Playgroud)
关于为什么system("notepad");效果很好,"notepad"是一个带有类型(包括空字符)的字符串文字const char[8],注意它不是,std::string并且可能const char*在传递时衰减std::system.
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |