C++ 如何使用命令行参数解析多个参数
我正在编写一个命令行实用程序,我想在其中解析几个参数:现在我没有从address读取数据(所以请不要被-addr弄糊涂);我的主要目标是设计框架,这样我就可以如下解析几个参数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的最大值
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++。