如何为C / C ++传递可选的命令行参数?

时间:2016-10-20 05:07:33

标签: c++ c command-line-arguments

我正在尝试编写一个程序,在某些约束下使用数字0 - 9计算不同可能密码的数量。这是一个必需的命令行参数,它将是密码中的位数,同时还有一个可选参数,它将是禁止的数字。输入的参数不会表示允许所有数字。

例如,我的程序应该被称为组合:

$ combinations 8 3    #find number of passwords of length 8 with '3' not allowed

我尝试查找它,发现你可以使用

为一个函数创建一个可选的参数
int myfunction( int optional = 3);
例如,

。但是,如果没有任何输入,那么似乎将值设置为默认值。如果它留空,我需要它允许所有数字。我如何为命令行参数执行此操作?

1 个答案:

答案 0 :(得分:3)

命令行参数从命令行传递到程序中作为main函数的参数。其签名必须为int main(int argc, char** argv)

第二个参数是一个空终止字符串数组,它保存在程序调用中传递的每个参数(包括程序名称)。第一个是数组中有多少个字符串。

您需要检查argc > 2,然后为该数字解析argv[2]