Argc et Argv C++

Argc Et Argv C



Lors de l'écriture de programmes C++, nous savons tous que la fonction 'main()' est considérée comme très importante car nous ne pouvons pas compiler notre programme si l'implémentation de cette fonction est manquante. Comme toutes les autres fonctions en C++, la fonction 'main()' est également capable d'accepter des arguments. Cependant, la différence entre la transmission d'arguments à la fonction 'main()' et la transmission d'arguments aux autres fonctions est que vous devez transmettre les arguments via la ligne de commande dans le premier cas. Il en est ainsi parce que la fonction 'main()' elle-même est la fonction pilote, c'est pourquoi aucune autre fonction n'est capable de l'appeler et de lui transmettre des arguments. Dans cet article, nous discuterons des deux paramètres de la fonction 'main()', c'est-à-dire 'argc' et 'argv' en C++ dans Ubuntu 20.04.

Qu'est-ce qu'Argc et Argv en C++ dans Ubuntu 20.04 ?

Le paramètre « argc » fait référence au nombre d'arguments, tandis que « argv » fait référence à un tableau de caractères contenant tous les arguments passés à la fonction « main() » via la ligne de commande au moment de l'exécution d'un programme en C++. Ici, vous devez savoir que 'argc' affiche toujours le nombre d'arguments comme '1' de plus que le nombre réel d'arguments passés. Il en est ainsi parce que le nom du fichier objet est également compté comme un argument de ligne de commande. Vous pouvez passer les arguments de ligne de commande appartenant à n'importe quel type de données à la fonction 'main()'. Tout ce dont vous avez besoin est que ces paramètres soient mentionnés dans le prototype de votre fonction 'main()' si vous souhaitez y accéder. Cependant, la fonction 'main()' peut parfaitement fonctionner sans ces deux paramètres. Ceci sera discuté dans la section suivante de cet article, après quoi nous passerons à l'utilisation de ces deux paramètres en C++ dans Ubuntu 20.04.

La fonction principale sans Argc et Argv en C++ :

Tout d'abord, nous voudrions vous dire que la fonction « main() » en C++ peut parfaitement fonctionner même sans utiliser les paramètres « argc » et « argv ». Ceci est décrit dans le programme C++ suivant :









Nous avons une simple fonction 'main()' dans ce programme sans aucun argument. Dans cette fonction 'main()', nous n'imprimons qu'un exemple de message sur le terminal.



Ensuite, nous avons compilé ce programme C++ de base à l'aide de la commande mentionnée ci-dessous :





$ g++ CommandLine.cpp –o CommandLine

Ensuite, nous avons exécuté ce programme en exécutant la commande suivante :



$ . / Ligne de commande

La sortie de ce programme C++ simple est illustrée dans l'image ci-dessous :

Exécution d'un programme C++ sans transmettre d'arguments de ligne de commande :

Maintenant, nous allons essayer d'implémenter un programme C++ dans lequel la fonction 'main()' est capable d'accepter les paramètres 'argc' et 'argv', cependant, nous ne lui passerons pas ces arguments lors de l'exécution de ce programme depuis le Terminal. Ledit programme C++ est illustré dans l'image suivante :

Dans ce programme C++, notre fonction « main() » est capable d'accepter les paramètres « argc » et « argv ». Cependant, puisque nous n'avions pas l'intention de lui transmettre ces valeurs dans cet exemple particulier, nous avons intentionnellement égalisé « argc » à « 0 » afin que lorsque nous essayons d'imprimer sa valeur, il ne renvoie aucune valeur parasite. Après cela, nous avons imprimé la valeur du paramètre 'argc' sur le terminal. Ensuite, nous avons utilisé une boucle 'for' pour afficher tous les arguments de la ligne de commande sur le terminal.

Nous avons compilé ce code à l'aide de la commande ci-dessous :

$ g++ CommandLine.cpp –o CommandLine

Ensuite, lorsque nous avons voulu exécuter ce programme, nous ne lui avons pas passé d'arguments de ligne de commande, comme vous pouvez le voir dans la commande suivante :

$ . / Ligne de commande

À partir de la sortie de ce programme C++ illustré dans l'image ci-dessous, vous pouvez voir qu'aucun argument de ligne de commande n'a été transmis à cette fonction, car le nombre d'arguments était '0' et aucun argument n'a été imprimé sur le terminal car le tableau de caractères ' argv » était également vide.

Exécution d'un programme C++ avec des arguments de ligne de commande de type entier :

Maintenant, nous voulons exécuter le même programme C++ en lui passant des arguments de ligne de commande de type entier. Cependant, avant de faire cela, nous allons légèrement modifier notre code comme indiqué dans l'image suivante :

La seule modification que nous avons apportée à ce code est que nous en avons supprimé la ligne 'argc=0' car dans cet exemple, nous voulons imprimer le nombre réel d'arguments de ligne de commande passés à ce programme au moment de l'exécution. Le reste du code est exactement le même que celui utilisé dans la section ci-dessus.

Nous avons recompilé notre code modifié à l'aide de la commande ci-dessous :

$ g++ CommandLine.cpp –o CommandLine

Ensuite, pour exécuter ce code, nous avons utilisé les arguments de ligne de commande suivants :

$ . / Ligne de commande 1 deux 3

Cela signifie que nous avons passé trois arguments de ligne de commande de type entier à ce programme C++ lors de son exécution, c'est-à-dire 1, 2 et 3.

La sortie de ce programme modifié est illustrée dans l'image ci-dessous :

Le nombre total d'arguments renvoyés par ce programme C++ est de '4', c'est-à-dire trois arguments entiers que nous avons passés + le nom du fichier objet. Ce programme a également imprimé les éléments du tableau de caractères 'argv' sur le terminal, c'est-à-dire les arguments réels de type entier qui ont été passés à ce programme au moment de l'exécution, ainsi que le nom du programme.

Exécution d'un programme C++ avec des arguments de ligne de commande de type caractère :

Maintenant, nous voulions voir si le même programme C++ fonctionne correctement lorsque nous essayons de l'exécuter en lui passant des arguments de ligne de commande de type caractère. Pour cela, nous n'avons pas eu besoin de le modifier davantage. Nous n'avions qu'à l'exécuter avec des arguments de ligne de commande de type caractère comme suit :

$ . / Ligne de commande a b c d e f

Cela signifie que nous avons passé des arguments de ligne de commande de type six caractères à ce programme C++ lors de son exécution, c'est-à-dire a, b, c, d, e et f.

La sortie produite à la suite de la transmission d'arguments de ligne de commande de type caractère au même programme C++ est illustrée ci-dessous :

Le nombre total d'arguments renvoyés par ce programme C++ est de '7', c'est-à-dire les arguments de six caractères que nous avons passés + le nom du fichier objet. Ce programme a également imprimé les éléments du tableau de caractères 'argv' sur le terminal, c'est-à-dire les arguments de type de caractère réels qui ont été passés à ce programme au moment de l'exécution, ainsi que le nom du programme.

Conclusion:

Cet article visait à discuter des deux arguments de ligne de commande, également appelés paramètres de la fonction 'main()', c'est-à-dire 'argc' et 'argv'. Nous avons parlé de l'importance de ces deux paramètres en précisant leur utilisation. Ensuite, nous avons partagé avec vous quelques exemples décrivant l'utilisation de « argc » et « argv » en C++ dans Ubuntu 20.04. De plus, nous avons également précisé que même sans utiliser ces paramètres, la fonction 'main()' pouvait parfaitement fonctionner. Par conséquent, une fois que vous aurez lu cet article, vous comprendrez très clairement l'utilisation de 'argc' et 'argv' en C++.