3 votes

Arguments principaux int par défaut en C/C++

Je jouais avec des projets en C/C++ et j'ai remarqué ceci :

C++

#include 

int main (int argc, const char * argv[]) {
    // insérez le code ici...
    cout << "Bonjour, le Monde!\n";
    return 0;
}

et

C

#include 

int main (int argc, const char * argv[]) {
    // insérez le code ici...
    printf("Bonjour, le Monde!\n");
    return 0;
}

J'ai toujours un peu pensé à cela, exactement quels sont ces arguments par défaut dans C/C++ sous int main ? Je sais que l'application se compilera toujours sans eux, mais à quoi servent-ils ?

10voto

Kninnug Points 5451

Ils contiennent les arguments passés au programme en ligne de commande. Par exemple, si j'ai le programme a.out et que je l'invoque ainsi :

$ ./a.out arg1 arg2 

Le contenu de argv sera un tableau de chaînes de caractères contenant

  1. [0] "a.out" - Le nom du fichier exécutable est toujours le premier élément
  2. [1] "arg1" - Les autres arguments
  3. [2] "arg2" - Que j'ai passés

argc contient le nombre d'éléments dans argv (comme en C, vous avez besoin d'une autre variable pour savoir combien d'éléments il y a dans un tableau, lorsqu'il est passé à une fonction).

Vous pouvez essayer vous-même avec ce programme simple :


C++

#include 

int main(int argc, char * argv[]){
    int i;
    for(i = 0; i < argc; i++){
        std::cout << "Argument "<< i << " = " << argv[i] << std::endl;
    }
    return 0;
}

C

#include 

int main(int argc, char ** argv){
    int i;
    for(i = 0; i < argc; i++){
        printf("Argument %i = %s\n", i, argv[i]);
    }
    return 0;
}

3voto

Santhosh Pai Points 1036

Si vous voulez accepter des arguments via la ligne de commande, alors vous devez utiliser les arguments dans la fonction principale. argc est le nombre d'arguments et un tableau de pointeurs de caractères liste les arguments. consultez ce lien http://www.cprogramming.com/tutorial/c/lesson14.html

2voto

JAB Points 11053

Il s'agit des arguments de ligne de commande. argc est le nombre d'arguments, et les arguments sont stockés sous forme d'un tableau de chaînes de caractères null-terminées (argv). Normalement, un programme sans arguments de ligne de commande passés aura quand même un argument stocké dans argv; à savoir, le nom utilisé pour exécuter le programme (qui ne sera pas toujours présent, en fonction de la manière dont le programme est exécuté, mais je ne peux pas me souvenir dans quelles circonstances cela se produit).

2voto

Zlatomir Points 3559

argc et argv sont la manière dont les arguments de ligne de commande sont passés à la fonction main() en C et en C++.

argc sera le nombre de chaînes pointées par argv, cela sera généralement une de plus que le nombre d'arguments que vous passez depuis le terminal, car généralement le premier est le nom du programme.

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