我需要将所有参数保存到矢量或类似的东西。我不是程序员,所以我不知道怎么做,但这是我到目前为止所做的。我只想调用函数系统来传递所有参数。
#include "stdafx.h"
#include "iostream"
#include "vector"
#include <string>
using namespace std;
int main ( int argc, char *argv[] )
{
for (int i=1; i<argc; i++)
{
if(strcmp(argv[i], "/all /renew") == 0)
{
system("\"\"c:\\program files\\internet explorer\\iexplore.exe\" \"www.stackoverflow.com\"\"");
}
else
system("c:\\windows\\system32\\ipconfig.exe"+**All Argv**);
}
return 0;
}
答案 0 :(得分:44)
我需要将所有参数保存到矢量或其他内容
您可以使用向量的范围构造函数并传递适当的迭代器:
std::vector<std::string> arguments(argv + 1, argv + argc);
不是100%确定这是你问的问题。如果没有,请澄清。
答案 1 :(得分:0)
要构建包含所有参数连接的字符串,然后根据这些参数运行命令,您可以使用以下内容:
#include <string>
using namespace std;
string concatenate ( int argc, char* argv[] )
{
if (argc < 1) {
return "";
}
string result(argv[0]);
for (int i=1; i < argc; ++i) {
result += " ";
result += argv[i];
}
return result;
}
int main ( int argc, char* argv[] )
{
const string arguments = concatenate(argc-1, argv+1);
if (arguments == "/all /renew") {
const string program = "c:\\windows\\system32\\ipconfig.exe";
const string command = program + " " + arguments;
system(command.c_str());
} else {
system("\"\"c:\\program files\\internet explorer\\iexplore.exe\" \"www.stackoverflow.com\"\"");
}
}