如何把一个c + +可变数据放入system()函数

看看下面的代码! 你会明白我想要什么:

#include <iostream> #include <windows.h> using namespace std; int main() { cout << "name the app u want to open"; string app; cin >> app; system("start app"); // I know this will not work! But how to make it will? return 0; } 

我希望你能理解我的问题。 如果没有,请在下面评论。

Solutions Collecting From Web of "如何把一个c + +可变数据放入system()函数"

简单地连接“开始”前缀和app变量,并将结果作为c样式的字符串传递给system() ,如下所示:

 #include <iostream> #include <windows.h> using namespace std; int main() { cout<<"name the app u want to open"; string app; cin>>app; const string cmd = "start " + app; system(cmd.c_str()); // <-- Use the .c_str() method to convert to a c-string. return 0; } 

您可以使用相同的连接技巧将args和/或文件路径添加到命令中:

 const string cmd = "start C:\\Windows\\System32\\" + app + " /?"; system(cmd.c_str()); 

上面的例子cmd将预先加载文件路径和“/?” 命令行参数。

对于你在评论中提供的例子,你可以这样做:

 #include <iostream> #include <windows.h> using namespace std; int main() { cout << "Enter the profile name: "; string profile; cin >> profile; const string cmd = "netsh wlan connect name=\"" + profile + "\""; system(cmd.c_str()); return 0; } 

连接两个,然后用c_str()std::string取出C字符串:

 system(("start " + app).c_str());