Plusieuers arguments (optarg) avec getopt

qued -  
 ching -
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 19031 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
et comme ça:./morpion -x 8 -x 7
chaque option n'attend qu'un paramètre ?
0
qued
 
Non il m'affiche ca :
arg 1 : 8
arg 2 :
arg 1 : 7
arg 2 :

:s
0
ching
 
man 3 getsubopt

:)
0