Я пытаюсь написать программу, которая будет подсчитывать количество различных возможных паролей, используя цифры 0-9 при определенных ограничениях. Он должен иметь один обязательный аргумент командной строки, который будет содержать количество цифр в пароле, а также необязательный аргумент , который будет запрещенной цифрой. Введенные аргументы не означают, что все цифры разрешены.Как передать необязательный аргумент командной строки для C/C++?
Например, если моя программа назвать комбинации:
$ 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++ допускает аргументы по умолчанию. Однако это не связано с разбором аргументов командной строки. В принципе, вы посмотрите на 'argc' в' main() 'и решите' argc == 2' означает «только длина», а 'argc == 3' означает« длина и запрещенная цифра ». Все остальное будет отклонено с использованием сообщения об использовании ('fprintf (stderr," Usage:% s length [forbidden] \ n ", argv [0]);' или около того). Вы также убедитесь, что аргументы действительны. –