मैं अपने आवेदन में कमांड लाइन पार्सिंग इंटरफ़ेस प्रदान करने के लिए boost::program_options
का उपयोग करता हूं। मैं, यह कॉन्फ़िगर करने के लिए विकल्पों को पार्स चाहते हैंबढ़ावा में अनचाहे पैरामीटर को कैसे प्रबंधित करें :: program_options
using namespace boost::program_options;
options_description desc("Allowed options");
desc.add_options()
("help,h", "produce help message")
("version,v", "print the version number")
("include-path,I", value< vector<string> >(), "include path")
("input-file,i", value<string>(), "input file");
positional_options_description p;
p.add("input-file", 1);
variables_map vm;
parsed_options parsed = command_line_parser(ac, av).
options(desc).positional(p).run();
store(parsed, vm);
notify(vm);
मैं इसे कॉन्फ़िगर करने के लिए इतना है कि पिछले स्विच करने के बाद हर टोकन वेक्टर का एक रूप में दिया जाता है चाहते हैं। मैंने बूस्ट दस्तावेज में दिए गए उदाहरण के अनुसार collect_unrecognized
का उपयोग करने का प्रयास किया है, लेकिन मैंने कुछ समस्याओं में भाग लिया है क्योंकि मैं इनपुट फ़ाइल के लिए स्थितित्मक तर्क का भी उपयोग कर रहा हूं।
असल में मैं इसे ऐसा करना चाहता हूं। अगर मैं है:
./program -i "inputfile.abc" argument1 argument2 argument3
मैं इसे input-file
मूल्य में inputfile.abc
स्टोर और argument1
, argument2
और argument3
अवांछित तर्क एक की vector<string>
वापसी करना चाहते हैं।
मैं हालांकि यह भी, एक स्थितीय तर्क है करने के लिए सक्षम होने के लिए इतना है कि
./program "inputfile.abc" argument1 argument2 argument3
मुझे एक ही परिणाम देना होगा चाहते हैं।
मुझे खेद है अगर यह पहले से ही पूछा जा चुका है और सहायता के लिए धन्यवाद।