我正在编写一个命令行实用程序,我想解析几个参数:现在我不是从地址读取数据(所以请不要被-addr混淆);我的主要目标是设计框架,以便我可以解析几个参数如下。
filename read -addr value -addr2 value2 -addrN valueN -length value -range value -length2 value2 -lengthN valueN -width value -width2 value2 -widthN valueN
N的最大值为64,最小值为1.
请提供一些有价值的建议,以便我能做到。 感谢
答案 0 :(得分:3)
考虑使用Getopt库或它的一些修改,它可以让你的生活更轻松。
http://www.boost.org/doc/libs/1_41_0/doc/html/program_options.html
答案 1 :(得分:1)
典型的main()
原型是这样的:
int main(int argc, char** argv) {
// stuff
}
当您的程序从命令行执行时,argc
将是您的参数的总数,加上一个用于程序本身的名称;你可以把argv想象成一个包含参数的字符串数组。
了解argc
,解析参数列表应该很简单:)
编辑:一个简短的例子,以防万一。
int main(int argc, char** argv) {
printf("%d\n", argc);
}
然后,在你的cl:
./program asd asd asd
4
argv [0]是“程序”,argv [1]是“asd”等。