IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Recuperer des options


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Par défaut Recuperer des options
    bonsoir tout le monde,
    voila ma petite fonction ne fait pas tres bien le travail
    elle n'affiche pas le message " option non reconnu " ou " attend un argument " quand j'oublie de rentrer un argument.
    Par exemple: ./test -s10 -d -a12 -c15 lancera le programme.

    Nb: si j'oublie l'argument pour c, il m'affichera "-c attend un argument"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    int c;
    char * s_arg=NULL, *d_arg=NULL, *a_arg=NULL, *c_arg=NULL; 
    int s_ar, d_ar, a_ar, c_ar;
    while ((c=getopt(argc, argv,":s:d:a:c:"))!=-1)
     {
      switch(c)
        {
         case 's':
            s_arg=optarg; s_ar=atoi(s_arg);
            break;
     
         case 'd': 
            d_arg=optarg; d_ar=atoi(d_arg);
            break;
     
         case 'a': 
            a_arg=optarg; a_ar=atoi(a_arg);
            break;
     
         case 'c': 
            c_arg=optarg; c_ar=atoi(c_arg);
            break;
     
         case '?':
            fprintf(stderr,"Option -%c non reconnu\n",optopt);
            fprintf(stderr,usage,basename (argv[0])); /* argv[0] contient le nom du prog*/
            exit (EXIT_FAILURE);
     
         case ':': 
            fprintf(stderr,"Option -%c attend un argument\n",optopt);
            fprintf(stderr,usage,basename (argv[0]));
            exit (EXIT_FAILURE);
     
         default: assert(0);
        } 
     }
    Merci d'avance

    [edit] Merci pour le point virgule, mais c'etait une erreur de recopie

  2. #2
    Membre émérite
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Par défaut
    Pas de point virgule après while

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 131
    Par défaut
    pfffffffffff comment j ai pas pu voir ca

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Par défaut
    Personne n'a une petite idée

  5. #5
    Membre émérite
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Par défaut
    Il sert à quoi le premier : dans ":s:d:a:c:" ?

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Freed0
    Il sert à quoi le premier : dans ":s:d:a:c:" ?
    Voir man

    If getopt() finds an option character in argv that was not included in
    optstring, or if it detects a missing option argument, it returns '?'
    and sets the external variable optopt to the actual option character.
    If the first character (following any optional '+'or '-' described
    above) of optstring is a colon (':'), then getopt() returns ':' instead
    of '?' to indicate a missing option argument. If an error was
    detected, and the first character of optstring is not a colon, and the
    external variable opterr is non-zero (which is the default), getopt()
    prints an error message.

Discussions similaires

  1. [VB6] récuperation des propriétés d'un fichier exe
    Par ulrick dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 26/03/2004, 00h08
  2. [langage] Récupérer des Warning ??
    Par armada dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 16h45
  3. [statusbar] recuperer des infos d'un autre prog
    Par noyax dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 20/12/2002, 15h52
  4. Parametrage des options de projet
    Par ares7 dans le forum EDI
    Réponses: 7
    Dernier message: 22/07/2002, 15h33
  5. Réponses: 4
    Dernier message: 18/07/2002, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo