如何使用命令行参数解析几个参数

时间:2011-04-29 06:17:41

标签: c++ command-line-arguments

我正在编写一个命令行实用程序,我想解析几个参数:现在我不是从地址读取数据(所以请不要被-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.

请提供一些有价值的建议,以便我能做到。 感谢

2 个答案:

答案 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”等。