web-dev-qa-db-fra.com

Comment passer des arguments de ligne de commande à un programme c

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.

11
user2213764

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[])
11
TGH

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"
9
Yu Hao

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.

2
Nobilis

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

1
Ankit singh kushwah