J'ai su écrire un programme qui accepte les arguments de ligne de commande depuis que j'ai appris à programmer. Ce que je ne comprends pas, c'est comment ces paramètres obtiennent leurs valeurs. Espérons que je ne mélange pas ces deux notions, mais il existe une différence entre un argument et un paramètre. Un argument est la valeur donnée à la fonction quand elle est appelée telle que: foo (a, b, c); où a, b et c sont les valeurs. Un paramètre est les valeurs qui sont à l'intérieur de la fonction pendant l'appel.
Ma question est donc la suivante: comment une personne passe-t-elle la ligne de commande arguments à un programme? Je comprends comment lire les arguments, que argc
est le nombre d’arguments, argv
est un pointeur sur un tableau de chaînes contenant les arguments, etc. etc., mais je ne sais pas comment leur donner une valeur.
Je cherche des informations à la fois pour C et C++. Je suis un peu novice dans ce domaine.
Dans un environnement Windows, il vous suffit de les passer en ligne de commande de la manière suivante:
myProgram.exe arg1 arg2 arg3
argv [1] contient arg1 etc.
La fonction principale serait la suivante:
int main (int argc, char *argv[])
Sur * nix:
$ ./my_prog arg1 arg2
Sur la ligne de commande Windows:
C:\>my_prog.exe arg1 arg2
Dans les deux cas, étant donné que main
est déclaré comme:
int main (int argc, char *argv[])
argc
sera une int
avec une valeur de 3, argv[1] = "arg1"
, argv[2] = "arg2"
, et argv[0]
aura en outre le nom du programme, my_prog
.
Les arguments de ligne de commande sont normalement séparés par un espace. Si vous souhaitez passer un argument avec un espace, comme hello world
, utilisez un guillemet double:
$ ./my_prog "hello world"
Sur * nix, il existe un très joli utilitaire qui vous permet d'analyser les indicateurs de ligne de commande et les arguments de manière très simple. Il y a un bel exemple de son utilisation sur la même page.
Vous exécuteriez ensuite votre programme et lui passeriez les arguments de manière très standard:
$ ./my_app -a -b -c argument1 argument2
Vous pouvez vous en passer et les analyser vous-même, mais si vous souhaitez que votre application soit utile à d'autres personnes, l'effort de la rendre conforme vaut vraiment la peine.
Cliquez simplement sur le menu de démarrage et tapez cmd dans l'index de recherche ... appuyez sur entrée .. maintenant dans le type de fenêtre cmd commande suivante ... "nom_programme arg1 arg2" (sans guillemets) et appuyez sur la touche Entrée ... et ouais, c'est fait! et