Arguments en c++?????

Fermé
[Epyon] - 18 févr. 2003 à 21:35
 josch83 - 19 févr. 2003 à 19:06
j'ai pas pigé a quoi ça sert et quand on les place ou quand on les places,...
merci de m'aider.

6 réponses

hallu,

Si tu parles des arguments passés à ton programme.

tu as :

main( int argc, char *argv[] )
{
// code
fopen(argv[1],"r");
// read
// etc ...
}

--> prog.exe

prog.exe D:/chemin/fic_conf.ini

Tu peux ainsi passer un fichier en argument que tu peux nommer comme tu veux et le placer où tu veux sur ta machine sans pour autant recompiler ton programme, c'est beaucoup plus souple non ???
0
va falloir que je relise une fois car je pige pas ton code
0
main( int argc, char *argv[] )


sinifie que le main recoit un certains nombre (=argc) d'arguments (=argv)

donc les arguments sont argv[0] (niombre du programme lui même

argv[1] = 1er argument

...

argv[argc-1] = dernier argument


par exemple si ton prog s'appelele toto.exe

et que sous DOS tu tapes toto.exe titi tata tutu

alors dans le main:

argc=4
argv[0] => "toto.exe"
...
argv[3] => tutu

ATTENTION argv[i] plante sauvagement pour i<0 ou i>=argc (oui >= et pas > cmme l'erreur classique des débutants ...)
0
le truc que je compren pas c'est aussi pq tu as un* c'est le signe d'un pointeur ??Si tu voudrais me montrer une demonstration d'un programme sans les "abréviation argc argv peut-être que je comprendrai mieux.

Mais tu m'as toujours pas dis, où est-ce que l'on place?

Merci pour ta patience.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je croais que au debut je me suis tromper, je voualsi demander a quoi sert les paramètre. Mais si tu en a le courage, j'aimerais que tu m'explique quand même les arguments lol
0
c'est pas bien sorcier.

Exemple :

quand tu veux écrire un fichier sous Linux par ex, avec vim (éditeur de text) et bien pour ouvrir un fichier tu lance la cmd :

vim mon_fichier.txt

vim, c'est le nom du programme donc argv[0]
mon_fichier.txt, c'est l'argument que l'on passe à vim pour qu'il puisse ouvrir le fichier voule et c'est argv[1].

ce qui fait que argc=2;
=> l'argument "0" argv[0] "le nom du prog"
=> l'argument "1" argv[1] "le paramètre que tu file à ton prog"

voici un petit code :
----------------------------------------------

#include <stdio.h>

int main(int argc, char **argv){
// argc c'est un entier qui va servir à compter le nombre de
// paramètres que tu passe à ton prog
// argv est un pointeur de pointeur tu peut aussi le noter de la
// façon suivante "char argv[][]". En réalité ça représentera
// un tableau à deux dimension qui contiendra les paramètres les
// uns à la suites des autres. Comme on ne peut pas savoir
// d'avance la longueur des arguments et le nombre, c'est
// pourquoi on utilise les pointeurs de pointeurs.

int i;

printf("\nnombre d'arguments : %d", argc);
printf("\nnom du programme : %s\n", argv[0]);

for(i=1 ; i<argc ; i++){
printf("argument %d : %s\n", i, argv[i]);
}

return 0;
}

---------------------------------
execution du programme nomée prog1.exe :

prog1.exe bonjours comment ca va

nombre d'arguments : 5
nom du programme : prog1.exe
argument 1 : bonjours
argument 2 : comment
argument 3 : ca
argument 4 : va


-----------------------------------------------
donc en comptant le nom du programme comme argument 0, on a bien 5 arguments.
J'espère que ça t'aura aidé.
Bonne chance et mail moi si tu as des questions.

josch83
schmidt.joachim.devel@bluewin.ch
0