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.
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