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 :

[c++]Quel code avoir pour utiliser les arguments en ligne de commande?


Sujet :

C++

  1. #21
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 281
    Points : 11 029
    Points
    11 029
    Par défaut
    Citation Envoyé par koala01
    d'autant plus que je ne connais absolument pas boost::progam_option et que, si ca se trouve, elle permet d'automatiser ce genre de choses
    Oouii. Et surtout elle permet d'associer des variables typées du code à des options. Un peu comme en perl. Et ça, c'est énorme.

    Maintenant, pour son exercice de C, je doute que cela lui soit très utile.

  2. #22
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par Luc Hermitte
    Oouii. Et surtout elle permet d'associer des variables typées du code à des options. Un peu comme en perl. Et ça, c'est énorme.
    s'il vous plait pourrait-on avoir un tutorial ?

  3. #23
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Pour cela, l'outil magique s'appelle Google! Voici un lien excellent:
    http://www.cs.brown.edu/~jwicks/boos...m_options.html

    Thierry

  4. #24
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 54
    Points : 26
    Points
    26
    Par défaut
    Merci vous tous!
    Je viens de jeter un coup d'oeil a BoostPrograms options...cest bien cela que je dois faire!
    genre nom.exe- c,
    nom.exe -a
    nom.exe -blabla...

    Surtout que mon code ne fonctionne pas en fait!

    il inverse!!??
    if(argc==2 && strcmp(argv[1], "-c") )
    et if(argc==2 && strcmp(argv[1], "-a") )

    me fait le code de "a" quand je lance le programme avec -c et inversement...

    Mais Boostprogramm options ma lair complique....

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 107
    Points
    107
    Par défaut
    La fonction strcmp renvoie 0 quand les deux chaines sont égales.
    Donc il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(argc==2 && !strcmp(argv[1], "-c") )
    et if(argc==2 && !strcmp(argv[1], "-a") )

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 54
    Points : 26
    Points
    26
    Par défaut
    Merci!

    Je close le sujet...
    cela fonctionne:

    if(argc==2 && strcmp(argv[1], "-c")==0 )

    C'est a premiere vue identique au code de frenchi puisque lui compare avec l'inverse (!)

    Boost_programmes jai essayer il m'a dit pleins d'erreurs... je savais pas comment le declarer nom plus...
    jai essayer "using namespace po = boost::program_options;"
    mais cela n'avais pas lair detre cela...

    Comme je disais jai malheureusement pas le temps de m'ebattre a regarder tout! Deadline cest demain et jai 11 parametres de lignes de commandes a faire!!!
    Avec des cas genre inverser les tableaux et tout...

    Merci beaucoup pour vos aides en tout cas!

    tres utiles!

  7. #27
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 281
    Points : 11 029
    Points
    11 029
    Par défaut
    Citation Envoyé par epsilon68
    [...boost.program_option...]s'il vous plait pourrait-on avoir un tutorial ?
    Un tutoriel, c'est un peu beaucoup demandé.
    Le lien qu'a donné mujigka semble être un mirroir vers la doc officielle, autant pointer vers elle.

    Autrement, tout ce que je peux "donner" pour l'instant, c'est un exemple d'utilisation sur un projet qui traine depuis trop longtemps.

    On y voit:
    - des variables typées directement associées des options, sans que l'on ait besoin de rien faire de plus notre côté -- i.e. pas de find(), switch, ... Sans être aussi clean que l'équivalent perl, je trouve que c'est déjà pas mal du tout
    - on peut toujours demander à voir la valeur d'une option non associée à une variable C++
    - un truc qui permet de fusionner des listes d'options -> "-k 1,2 -k 42" ; En utilisant juste un vecteur au lieu de mon CommaSepList, "1" et "2" n'auraient pas été compris comme deux arguments différents, mais la fusion aurait tout de même été au rendez-vous.
    - des options avec ou sans arguments ; des options courtes et/ou longues
    - que la doc est embarquée dans la définition des options -> pas forcément très clair à relire du coup
    - et diverses autres choses.

    Quelques petits problèmes:
    - la doc générée rajoute un "arg" en plus, ce qui me gêne un peu par rapport à ce que j'aurais voulu obtenir (cf cyg-wrapper.sh à la racine du répertoire cygwin de mon site)
    - un bug semble-t-il avec la gestion des paramètres qu'il faudrait ignorer au lieu de lever une exception
    - un empreinte pas si négligeable (comparé aux autres outils cygwin), que je soupçonne venir de l'utilisation des IOStreams standard.

    boost.program_options est puissant et pratique (à quelques détails près), mais je ne pense pas que cela soit le genre de choses que l'on puisse employer dans un devoir à rendre.

  8. #28
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Merci...
    Je vais jeter un oeil :-)

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/08/2012, 14h36
  2. [EJB] Quelles bonnes pratiques pour utiliser les transactions "en ligne"?
    Par kisitomomotene dans le forum Java EE
    Réponses: 1
    Dernier message: 12/12/2011, 20h22
  3. Quels modules Perl pour gérer les documents XML ?
    Par djibril dans le forum Modules
    Réponses: 8
    Dernier message: 02/12/2010, 23h54
  4. Réponses: 1
    Dernier message: 30/06/2006, 15h49
  5. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 18h21

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