Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1447 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Question à 2 sous

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question à 2 sous

n°306042
edless
Ca serre à quoi une tête
Posté le 11-02-2003 à 07:49:00  profilanswer
 


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

mood
Publicité
Posté le 11-02-2003 à 07:49:00  profilanswer
 

n°306046
kadreg
profil: Utilisateur
Posté le 11-02-2003 à 08:30:08  profilanswer
 

Edless a écrit :


je ne comprend pas bien l'utilité du argc,  


 
Parceque sans lui, tu n'as pas moyen de connaitre la taille du tableau passé en paramètre, et donc le nombre d''arguments


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°306047
edless
Ca serre à quoi une tête
Posté le 11-02-2003 à 08:35:46  profilanswer
 

kadreg 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


 
 
quel sera la commande pour lancer le programe...
 
simplement  
 
nomduprog argumentablo
 
ou
 
nomduprog     nb.d'argumentablo  argumentablo

n°306051
kadreg
profil: Utilisateur
Posté le 11-02-2003 à 08:47:35  profilanswer
 

Edless a écrit :


nomduprog argumentablo


 
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.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°306078
edless
Ca serre à quoi une tête
Posté le 11-02-2003 à 09:35:36  profilanswer
 

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


 
mon man dit la mem chose...
 
expliqque moi le concept de argv svp. [:tuffgong]

n°306288
Carbon_14
Posté le 11-02-2003 à 13:37:08  profilanswer
 

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.


Message édité par Carbon_14 le 11-02-2003 à 13:37:43
n°307239
edless
Ca serre à quoi une tête
Posté le 12-02-2003 à 07:25:29  profilanswer
 

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

n°307246
Carbon_14
Posté le 12-02-2003 à 08:50:42  profilanswer
 

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[]" ).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Question à 2 sous

 

Sujets relatifs
Batch : question de débutantQuestion sur les include()
P'tite question SQL (mySQL) - résolu (merci tomlameche! :-))petite question d'un débutant à propo des listes
[JAVA]Question de compréhensionPetite question conne, aide svp
question gestion de fenetrequestion loufoque à propos des GPU
Pro du C requi : question sur les variables initalisées dans un forQuestion pratique avec les src, link, include etc...
Plus de sujets relatifs à : Question à 2 sous


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR