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 le type d'une valeur saisie


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 9
    Points : 15
    Points
    15
    Par défaut tester le type d'une valeur saisie
    Je voudrais tester si l'argument que l'utilisateur ecrit sur la ligne de commande est bien un entier

  2. #2
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 338
    Points : 130 372
    Points
    130 372
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    C'est simple : il suffit de convertir ta chaîne en entier en utilisant strtol

    strtol() prend trois arguments : le premier c'est la chaîne à convertir, le deuxième c'est un pointeur vers un char* qui sert à indiquer le premier caractère de la chaîne qui est "incorrect". Si ce pointeur pointe sur le caractère nul terminal, la chaîne contenait bien un entier. Le troisième argument, c'est la base (10 en général). La fonction retourne le nombre converti.

    Exemple :
    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
    #include <stdlib.h>
    #include <stdio.h>
     
    int main(int argc, char** argv)
    {
      if (argc == 2) {
        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;
    };
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

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

Discussions similaires

  1. Type d'une valeur
    Par Premium dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 21/07/2006, 10h55
  2. Tester le type d'une variable
    Par mzt.insat dans le forum Linux
    Réponses: 5
    Dernier message: 30/05/2006, 18h37
  3. tester le type d'une chaine
    Par molesqualeux dans le forum C
    Réponses: 33
    Dernier message: 03/02/2006, 08h47
  4. [PL/SQL 9i] Tester le type d'une donnée
    Par tomca dans le forum Oracle
    Réponses: 10
    Dernier message: 29/09/2005, 09h17
  5. Réponses: 2
    Dernier message: 11/12/2004, 21h20

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