C++ 如何使用命令行参数解析多个参数

C++ 如何使用命令行参数解析多个参数,c++,command-line-arguments,C++,Command Line Arguments,我正在编写一个命令行实用程序,我想在其中解析几个参数:现在我没有从address读取数据(所以请不要被-addr弄糊涂);我的主要目标是设计框架,这样我就可以如下解析几个参数 filename read -addr value -addr2 value2 -addrN valueN -length value -range value -length2 value2 -lengthN valueN -width value -width2 value2 -widthN valueN N的最大值

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

请给我一些有价值的建议,以便我能做这件事。 谢谢

典型的
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”,等等。

典型的
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”,等等。

考虑使用Getopt库或其一些修改,它可以使您的生活更轻松


考虑使用Getopt库或其一些修改,它可以让您的生活更轻松


向我们展示您目前的代码,并解释您的困难。否则,这就是“发送代码plz”。我认为我们可以提供帮助,而无需进行实际的解析:)向我们展示您迄今为止的代码,并解释您的困难。否则,这就是“send-teh-codez-plz”。我认为我们可以提供帮助,而无需进行实际的解析:)@Santiago-Lezica-hey-hi我知道命令行参数,但我处理的参数数量可变,就像我可以在命令行提供任意数量的参数一样;这就是造成我问题的原因。你们中的任何一个能提供关于变量数量的帮助吗?我知道可能是“getopt”可以解决我的问题,但我不知道如何使用它。只要你知道参数的总数,你就可以遍历它们并确定它们影响哪些设置。只需循环和分析。@Santiago Lezica嗨,我知道命令行参数,但我处理的参数数量可变,就像我可以在命令行提供任意数量的参数一样;这就是造成我问题的原因。你们中的任何一个能提供关于变量数量的帮助吗?我知道可能是“getopt”可以解决我的问题,但我不知道如何使用它。只要你知道参数的总数,你就可以遍历它们并确定它们影响哪些设置。你能告诉我在windows下getopt()的等价物是什么吗?实际上我在使用VC++。你能告诉我在windows下getopt()的等价物是什么吗?实际上我在使用VC++。