Plusieuers arguments (optarg) avec getopt

Fermé
qued - 16 déc. 2007 à 15:46
 ching - 15 avril 2009 à 10:55
Bonjour,

Je suis en train de programmer un jeu de morpion, et pour cela, j'utilise getopt pour gerer les options données en paramètre. Voici le code actuel.





int main(int argc, char ** argv)

{

int c;


char * xvalue = NULL;
char * xvalue2 = NULL;
extern char *optarg;



while ( (c = getopt(argc , argv, "iax:o:e:rhv")) != -1){

switch (c) {


case 'i':


//Operation d'initialisation
break;


case 'a':
//Operation d'affichage


break;

case 'x':
xvalue = optarg;
printf("arg 1 : %s\n",xvalue);
//je passe au pointeur suivant
optarg++;
xvalue2 = optarg;
printf("arg 2 : %s\n",xvalue2);

break;

case 'o':



break;

case 'e':



break;

case 'r':



break;

case 'h':



break;

case 'v':



break;

default:

printf("Defaut \n");

break;

}


}

return 0;

}

Quand je rentre la commande ./morpion -x 8 7
Il m'affiche ca :
arg 1 :
8
arg 2 :

Voila, je ne vois pas trop comment faire.

3 réponses

dubcek Messages postés 18778 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 5 avril 2025 5 630
16 déc. 2007 à 15:55
et comme ça:./morpion -x 8 -x 7
chaque option n'attend qu'un paramètre ?
0
Non il m'affiche ca :
arg 1 : 8
arg 2 :
arg 1 : 7
arg 2 :

:s
0
man 3 getsubopt

:)
0