Plusieuers arguments (optarg) avec getopt

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.
Configuration: Linux
Firefox 2.0.0.8

3 réponses

  1. Contributeur
    et comme ça:./morpion -x 8 -x 7
    chaque option n'attend qu'un paramètre ?
    0
    1. Non il m'affiche ca :
      arg 1 : 8
      arg 2 :
      arg 1 : 7
      arg 2 :

      :s
      0