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 :

Tester si les arguments sont des entiers


Sujet :

C

  1. #1
    Membre habitué Avatar de mailbox
    Profil pro
    Inscrit en
    Février 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 140
    Points : 159
    Points
    159
    Par défaut Tester si les arguments sont des entiers
    J'aimerai tester si les arguments passés en ligne de commande sont des entiers, j'ai essayé comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int main(int argc, char** argv)
    {
        char* ptr;
        long result = strtol(argv[1], &ptr, 10);
     
        if (*ptr == '\0')
          printf("C'est bien un entier: %ld\n", result);
        else
          printf("Ce n'est pas un entier.\n");
     
      return 0;
    }
    Mais j'ai 6 arguments en entrée et il y a peut être une meilleure méthode

  2. #2
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Avril 2010
    Messages : 66
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Mais j'ai 6 arguments en entrée et il y a peut être une meilleure méthode
    Ben une boucle alors

    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
     
    int main(int argc, char** argv)
    {
        char* ptr;
        long   result;
     
        while (argc > 1)
        {
             result = strtol(argv[argc - 1], &ptr, 10);
             if (*ptr == '\0')
                 printf("L'argument numero %d est un entier : %ld\n", argc, result);
             else
                printf("L'argument numero %d n'est pas un entier.\n", argc);
             argc--;
        }
     
      return 0;
    }

  3. #3
    Membre habitué Avatar de mailbox
    Profil pro
    Inscrit en
    Février 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 140
    Points : 159
    Points
    159
    Par défaut
    Ca marche merci!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Etes-vous sûr que votre programme teste si les valeurs sont des entiers?

  5. #5
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Avril 2010
    Messages : 66
    Points : 70
    Points
    70
    Par défaut
    Bonjour,
    Etes-vous sûr que votre programme teste si les valeurs sont des entiers?
    strtol semble renvoyer un pointeur "défectueux" (entendre par là, non-nul) si l'argument comporte une virgule ou un point qui pourrait empêcher la conversion (je viens de vérifier en écrivant 1.5 et 1,5 et strtol() signale une erreur via le pointeur). Ainsi, le programme teste en effet les entiers.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/08/2007, 17h30
  2. Résultat exact division dont les membres sont des requêtes
    Par totoranky dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/08/2007, 14h51
  3. Réponses: 3
    Dernier message: 24/07/2006, 13h11
  4. Tri alphabétique d'un TreeMap dont les clés sont des String
    Par Djakisback dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 31/03/2006, 14h33
  5. fonction dont les argument sont dans un dico
    Par GConstant dans le forum Général Python
    Réponses: 1
    Dernier message: 12/08/2004, 18h24

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