Fonction main

Fermé
didier_68 - 8 juin 2005 à 11:17
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 - 8 juin 2005 à 22:28
bonjour a tous,

je debute en c++ et dans mes programme je rencontre souvent:

int main(int argc, char* argv[])

est ce que quelqu' un pourrai m'expliquer en detail ce que cette ligne veut dire et surtout dans quel cas l'utiliser (quand on declare des pointeur, des tableau,...)

merci d'avance

3 réponses

sam3000 Messages postés 1225 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 13 juin 2005 144
8 juin 2005 à 11:36
cette ligne c'est le "point d'entree" de ton programme, c'est la première fonction qui sera exécutée,
le premier paramètre (argc) c'est un nombre indiquant combien ton programme (lorsqu'il est lancée en ligne de commande) a de paramètres
le second (argv[]) c'est un tableau de chaines pointants chacune sur l'argument dont tu donne l'index.
exemple,
tu as un programme compilé "monprog.exe"
tu le lance ainsi:
c:\>monprog +r -f fichier.txt

dans le programme tu as:
argc=3
argv[0]="monprog"
argv[1]="+r"
argv[2]="-f"
argv[3]="fichier.txt"

@*
0
merci beaucoup pour tes explication!

juste une derniere petite question : lors de la conception d'un programme faut-il indiquer les valeurs (3 comme tu me l'a mis dans l'exemple) ou alors on met toujours argc,argv[] et c'est le compilateur qui fait le reste tout seul

merci
0
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
8 juin 2005 à 22:28
Salut

1/ on peut très bien faire
int main()

sans arguments, le compilateur l'accepte.
dans ce cas, adieu le "ouvrir avec" ou autres joyeusetés

2/ c'est à toi de gérer argc et argv pour leurs valeurs.
le compilateur ne peut pas deviner combien d'arguments il peut y
avoir au maximum, ni ce qu'ils peuvent accepter.
cependant, argc prendra automatiquement comme valeur le nombre d'arguments qui ont été passés au lancement du programme.

3/le nombre maximum d'arguments ? il n'y a pas d'autre limite
que la valeur maximale que peut contenir un integer (en principe).

cordialement
0