82 votes

Comment convertir un argument de ligne de commande en int ?

Je dois récupérer un argument et le convertir en un int. Voici mon code jusqu'à présent :

#include <iostream>

using namespace std;
int main(int argc,int argvx[]) {
    int i=1;
    int answer = 23;
    int temp;

    // decode arguments
    if(argc < 2) {
        printf("You must provide at least one argument\n");
        exit(0);
    }

    // Convert it to an int here

}

1voto

WhirlWind Points 8305

Jetez un œil à strtol(), si vous utilisez la bibliothèque standard C.

0voto

Ramanand Yadav Points 127

Comme ça, on peut faire....

int main(int argc, char *argv[]) {

    int a, b, c;
    *// Converting string type to integer type
    // using function "atoi( argument)"* 

    a = atoi(argv[1]);     
    b = atoi(argv[2]);
    c = atoi(argv[3]);

 }

0voto

Andrew Garcia Points 11

À mon avis, c'est la façon la plus pratique de transmettre vos variables. Utilisation de std::stoi. C'est une bonne pratique d'utiliser std: : et de NE PAS utiliser d'espace de noms ; c'est pourquoi je peux définir une chaîne avec "string" comme nom de variable

#include <iostream>
#include <string>

int main(int argc, char **argv)
{
    std::string string{argv[1]};
    int integer1{std::stoi(argv[2])};
    int integer2{std::stoi(argv[3])};

    int sum{integer1 + integer2};
    std::cout << string << " sum " << sum;
}

Exemple :

./out this 40 1  // input 
this sum 41      // output

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X