Question à 2 sous - C++ - Programmation
Marsh Posté le 11-02-2003 à 08:30:08
| Edless a écrit :   | 
 
 
Parceque sans lui, tu n'as pas moyen de connaitre la taille du tableau passé en paramètre, et donc le nombre d''arguments
Marsh Posté le 11-02-2003 à 08:35:46
| kadreg a écrit :   | 
 
 
 
quel sera la commande pour lancer le programe... 
 
simplement  
 
nomduprog argumentablo 
 
ou 
 
nomduprog     nb.d'argumentablo  argumentablo 
Marsh Posté le 11-02-2003 à 08:47:35
| Edless a écrit :   | 
 
 
Parceque le mécanisme avec argc est un mécanisme général. Mon man execvp me dit : "Le tableau de pointeur [passé à execvp] doit se terminer par un pointeur NULL.", ce n'est pas obligatoirement le cas de argv lorsque tu démmarres un programme.
Marsh Posté le 11-02-2003 à 09:35:36
| kadreg a écrit :   | 
 
 
mon man dit la mem chose... 
 
expliqque moi le concept de argv svp. ![[:tuffgong] [:tuffgong]](https://forum-images.hardware.fr/images/perso/tuffgong.gif) 
 
Marsh Posté le 11-02-2003 à 13:37:08
Dans une ligne de commande, on peut avoir qq chose comme 
MonProg NomDeFichier -a2 -b3 -h4 TotoABobo.txt 
 
On récupère dans MonProg le nombre d'arguments (à condition qu'ils soient séparés par espace) dans argc et "NomDeFichier" dans argv[0], "-a2" dans argv[1], "-b3" dans argv[2], "-h4" dans argv[3], et "TotoABobo.txt" dans argv[4]. Y a plus qu'à les exploiter si ce sont des options de ligne de commande prévus par le développeur.
Marsh Posté le 12-02-2003 à 07:25:29
est-ce des fonctions standard ou les noms des variables n'ont pas d'importance 
 
ex : main(argc, argv[]) = main(arge, argj[]) 
 
Question 2 
 
s'agit-il plutot de la positon, c'est-a-dire qu'avec un main, le nombre d'argument est automatiquement stocke dans une variable... 
 
Comment fait-on dans le cas d'une fonction ordinaire pour verifier le nombre d'argument par exemeple... 
 
 
Merci
Marsh Posté le 12-02-2003 à 08:50:42
Pour ce que je disais plus haut, vu un autre topic, je dois être décalé, argv[0] devrait être le nom de l'exe => quand y en a, les arguments sont en argv[1], [2], .. 
 
J'ai jamais essayé de remplacer argc et argv[] par autre noms, mais suis qu'amateur.  
Ca doit être pour aider à s'y retrouver quand on reprend le code d'un autre !! 
 
Ca concerne les entrées de prog en commande DOS, si on a une fonction/procédure perso dans un prog, on se débrouille pour savoir ce qu'on passe comme variable tableau, sa taille, ... Si on passe un tableau de chaînes en argument, c'est à soi-même de se débrouiller pour prévoir un garde-fou, une borne, .. Genre copier et avoir un compteur de cases (genre "argc" ) et le tableau (genre "argv[]" ).
Marsh Posté le 11-02-2003 à 07:49:00
argc ne se trouve nul part dans le prog,
pourquoi avoir introduit cet argument,
(main fait un execvp avec argv en parametre)
int main(int argc,char *argv[])
je ne comprend pas bien l'utilité du argc,
si quelqu'un peut m'aider je colle le code.
merci