Getopt é um pouco exagerado para obter apenas um argumento de linha de comando. Se o seu programa exigir mais opções e argumentos posteriormente, você poderá considerar algo semelhante a getopt . Para uma maneira mais orientada para C ++ de analisar linhas de comando mais complicadas, talvez você queira dar uma olhada no Biblioteca Boost Program Options . A maioria das linguagens (Java, Perl, Python, C, C ++, Pascal, etc etc) tem uma biblioteca de funções ou instruções que retornam os argumentos da linha de comando.
Em C ou C ++, você pode simplesmente converter o primeiro argumento "10" ou o que for, para um inteiro. Todos os argumentos da linha de comando são strings ( char arrays terminados com um byte zero).
Algo parecido com isto:
-
Adicione o código ao seu programa principal para verificar o argumento da linha de comando, algo como:
int pwlength(10); // or whatever the default if (argc > 1) { // put code here to convert the string in argv[0] to an integer // and store in pwlength. // If the string cannot be converted, // Print an error message and exit the program with // the statement "return 1;" or "exit(1);" which // notifies the caller of the executable that an error occurred. } std::cout << "Your password length will be: " << pwlength << std::endl; -
Adicione o diretório onde o arquivo
newpassé armazenado na sua variávelPATH, por exemplo, assumindo quenewpassestá localizado no diretório$HOME/bin:
PATH="$PATH:$HOME/bin" -
Altere os modos de arquivo do arquivo
newpasscomchmod:%chmod +x newpass