parse(int argc, char* argv[])
オブジェクトの目的の状態を設定するために使用する必要のある関数を持つクラスがあります。を使用してGUIからパラメーターを取得し、stringstream
それらをchar**に変換して関数に渡そうとしています。これが私が持っているものです:
std::stringstream sstream;
sstream << "-clip" << " " << min_x_entry.get_text()
<< " " << max_x_entry.get_text(); // etc.
std::cout << sstream.str(); // All looks good here
std::vector<std::string> args;
std::vector<char*> argv;
std::string arg;
while (sstream >> arg)
{
args.push_back(arg);
argv.push_back(const_cast<char*>(args.back().c_str()));
}
argv.push_back(0);
int argc = args.size();
for (int i = 0; i < argc; ++i)
std::cout << &argv[0][i]; // This outputs garbage
my_object.parse(argc, &argv[0]) // And this fails
私は何が欠けていますか?これを達成するためのより良い方法はありますか?