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 averti
    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
    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
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 380
    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;
    };

+ 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