如何将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;
}
答案 0 :(得分:5)
将两者连接起来,然后使用std::string
从c_str()
中获取C字符串:
system(("start " + app).c_str());
答案 1 :(得分:3)
简单地连接“start”前缀和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;
}