2011-04-29 120 views
1

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

请给一些有价值的建议,使我能做到这一点。 感谢

+1

向我们显示您的代码,并解释您的困难。否则,这是“send teh codez plz”。 – abelenky 2011-04-29 06:21:16

+0

我认为我们可以提供帮助,而无需进行实际的解析:) – slezica 2011-04-29 06:23:47

回答

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”,等等

+0

@ Santiago Lezica嘿嗨我知道命令行参数,但我正在处理可变数量的参数,就像我可以在命令行中提供任意数量的参数一样;这是引起我这个问题的东西。你们中的任何一个人可以为我提供的可变数量的参数提供帮助:“getopt”可以解决我的问题,但我不知道如何使用它。 – Tejendra 2011-04-29 06:39:35

+0

只要您知道参数的总数,您就可以在遍历它们并确定它们影响哪些设置的情况下没有任何问题。只是循环和分析。 – slezica 2011-04-29 20:15:14