如何将c ++变量数据放入system()函数

时间:2016-12-20 12:51:58

标签: c++ windows codeblocks

如何将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;
}

2 个答案:

答案 0 :(得分:5)

将两者连接起来,然后使用std::stringc_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;
}