【发布时间】:2017-03-01 22:45:50
【问题描述】:
我正在尝试编写一个程序,该程序将在某些限制下使用数字 0 - 9 计算不同可能密码的数量。它有一个必需的命令行参数,即密码中的位数,同时还有一个 可选 参数,即禁止的数字。没有输入参数将意味着所有数字都被允许。
例如,我的程序是否应该被称为组合:
$ combinations 8 3 #find number of passwords of length 8 with '3' not allowed
我尝试查找它,发现您可以使用
将参数设置为函数的可选参数int myfunction( int optional = 3);
例如。但是,如果不输入任何内容,这似乎会将值设置为默认值。如果它留空,我需要它来允许所有数字。我如何为命令行参数做呢?
【问题讨论】:
-
您可以使用
argc获取传递给程序的参数总数。该计数器提供包括文件名在内的参数。因此,在给出的示例中,您的argc将为 3。您可以围绕它构建其余的逻辑。 -
如果你使用
int myfunction( int optional = 3);你不是在写C;只有 C++ 允许默认参数。但是,这与命令行参数解析无关。基本上,您将在main()中查看argc并确定argc == 2表示“只是长度”,argc == 3表示“长度和禁止数字”。任何其他内容都将被使用消息(fprintf(stderr, "Usage: %s length [forbidden]\n", argv[0]);或其他)拒绝。您还将检查参数是否有效。
标签: c++ c command-line-arguments