为什么当我使用此命令行时会崩溃:“program -p 1”而不是“program --p 1”
我用 VS 2008 编译它并使用 boost 1.51。
options_description desc("XXX");
desc.add_options()("p", value<std::string>(), "pi")
("s", value<std::string>(), "es");
std::cout << desc << std::endl;
variables_map vm;
store(parse_command_line(argc, argv, desc), vm);
notify(vm);
if (vm.count("p"))
cout << "p is: " << vm["p"].as<string>() << endl;
if (vm.count("s"))
cout << "s is: " << vm["s"].as<string>() << endl;
最佳答案
Boost 程序选项以--
作为默认选项起始字符序列。如果您希望“单字母” 选项以单个 -
字符开头,则需要指定
desc.add_options()("p,p", value<std::string>(), "pi")
我猜程序崩溃发生在您显示的代码行之后的某处。您应该调试(或使用进一步的 cout
语句)来更准确地确定崩溃点。
关于c++ - boost 编程选项使我的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333844/