我正在尝试使用boost program_options来修复程序中的问题以处理命令行。
有两个不同的命令以s开头。一个在add_options中定义为: “开始,S”,PO ::值()
另一个定义如下: “停止”,po :: value()
如果命令行输入正确,例如“--stop x”,一切正常。如果用户忘记输入其中一个连字符,例如“-stop x”,则program_options认为用户正在执行启动命令(“-s top”)并返回无意义错误。修复错误不是问题,但如果“-s top”是合法命令会发生什么?在这种情况下,用户方面的简单,轻微和可理解的错误可能会带来灾难性的后果。不完全是用户友好的。
我认为最好的办法是强制命令和参数之间有空格,但是没有办法做到这一点。
有什么建议吗?