用要传递给其他方法的字符串填充 argv(并获取 argc)
Fill argv (and get argc) with a string to pass to other method
我从另一种方法收到一个 string
(我不知道它的大小),我想用这个 argv
(并得到 argc
) =11=] 传递给其他方法,我不知道该怎么做。
在 string
的开头,我设置了我的应用程序的名称,所以我有一个最终的 string
,例如:
"myapp arg1 arg2 arg3 arg4"
我的代码如下:
int main (int argc, const char* argv[])
{
while(true)
{
// send_string() give a string like: “the_name_of_my_app arg1 arg2 arg3 arg4”
std::string data = send_string();
argv = data;
argc = number_of_element_on_data;
other_function(argc, argv);
}
return 0;
}
尝试这样的事情:
#include <vector>
#include <string>
#include <sstream>
int main (int argc, const char* argv[])
{
while (true)
{
// send_string() give a string like: “the_name_of_my_app arg1 arg2 arg3 arg4”
std::string data = send_string();
std::istringstream iss(data);
std::string token;
std::vector<std::string> args;
while (iss >> token)
args.push_back(token);
std::vector<const char*> ptrs(args.size()+1);
for(size_t i = 0; i < args.size(); ++i)
ptrs[i] = args[i].c_str();
ptrs[args.size()] = NULL;
other_function(args.size(), ptrs.data());
}
return 0;
}
我从另一种方法收到一个 string
(我不知道它的大小),我想用这个 argv
(并得到 argc
) =11=] 传递给其他方法,我不知道该怎么做。
在 string
的开头,我设置了我的应用程序的名称,所以我有一个最终的 string
,例如:
"myapp arg1 arg2 arg3 arg4"
我的代码如下:
int main (int argc, const char* argv[])
{
while(true)
{
// send_string() give a string like: “the_name_of_my_app arg1 arg2 arg3 arg4”
std::string data = send_string();
argv = data;
argc = number_of_element_on_data;
other_function(argc, argv);
}
return 0;
}
尝试这样的事情:
#include <vector>
#include <string>
#include <sstream>
int main (int argc, const char* argv[])
{
while (true)
{
// send_string() give a string like: “the_name_of_my_app arg1 arg2 arg3 arg4”
std::string data = send_string();
std::istringstream iss(data);
std::string token;
std::vector<std::string> args;
while (iss >> token)
args.push_back(token);
std::vector<const char*> ptrs(args.size()+1);
for(size_t i = 0; i < args.size(); ++i)
ptrs[i] = args[i].c_str();
ptrs[args.size()] = NULL;
other_function(args.size(), ptrs.data());
}
return 0;
}