[C] Récuperer des arguments

Récuperer des arguments [C] - Programmation

Marsh Posté le 29-07-2001 à 21:56:06    

j'ai un programme appellé toto.exe
 
si je décide de lancer le programme toto.exe de la facon suivante :  
 
c:\toto.exe -argument1 - argument2
 
je voudrais pouvoir récuperer ces arguments dans mon programme.
Comment faire?

Reply

Marsh Posté le 29-07-2001 à 21:56:06   

Reply

Marsh Posté le 29-07-2001 à 21:59:08    

ben je peux me tromper mais je crois que tu dois faire ton main comme ca:
 
main(int argc, char **argv) {
 
argc sera le nb d'arguments (je crois qu'y tjs min un argumennt meme si passe rien)
argv[n] sera le nieme argument (ca commence pt'etre a 0 suis pas sur)
 
voila, sous dos je sais pas mais avec linux c ainsi que je fais :)

Reply

Marsh Posté le 29-07-2001 à 22:12:55    

**argv? j'pige pas trop ta syntaxe!
 
et surtout si en fait on dois le passer en argv[n]
 
Et là je ne vois pas comment ni ou je récupère les arguements pour les utiliser!

Reply

Marsh Posté le 29-07-2001 à 22:36:56    

fais un truc du genre ca
 
int   main(int ac , char **argv)
{
   if(ac != 3)
      printf("Manque des arguments\n" );
   else
      view_args(argv[1] , argv[2]); /* argv[0] cest le nom de l exe */
return (0);
}
 
int view_arg(char *arg1 , char *arg2)
{
printf ("ARG1 recupere : %s\nARG2 recupere : %s\n" , arg1 , arg2);
return (0);
}
 
pas besoin de foutre de "-" mais teste ca :)

 

[edtdd]--Message édité par R@NNIS--[/edtdd]


---------------
Mes News
Reply

Marsh Posté le 29-07-2001 à 22:39:00    

:jap:  :jap:  :jap:  :jap:  
 
merci bcp !!
 
c'est super sympa!

Reply

Marsh Posté le 29-07-2001 à 22:41:04    

euh ca marche pour linux en tout cas :)  
en gros tu donnes ca :
 
toto.exe titi tata
le prog va te renvoyer  
 
ARG1 recupere : titi
ARG2 recupere : tata
 
voila :)


---------------
Mes News
Reply

Marsh Posté le 29-07-2001 à 22:43:21    

merci bcp!
 
par contre comment se fait il qu'il y ai une syntaxe du C propre à linux?

Reply

Marsh Posté le 29-07-2001 à 22:48:53    

je sais pas si cest propre a linux :)  
mais je programme ke la dessus donc si le compilateur gere ca differement ...
il est possible ke l argv[n] coreesponde pas a ce ke j ai dis mais k il soit incremente de 1 ou decremente de 1 .. testes tu verras :)


---------------
Mes News
Reply

Marsh Posté le 30-07-2001 à 02:40:09    

Le main, c'est totallement standardise.
La ligne de commande est decoupee en chaines de caracteres, les blancs etant consideres comme des separateurs.
d'ou le char** correspondant a un tableau de chaines de caracteres.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed