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 :

tant que je n'ai pas un nombre >0 . . .


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut tant que je n'ai pas un nombre >0 . . .
    Salut tout le monde
    Peut etre pourriez vous m'aider :

    Je souhaiterais creer une fonction qui oblige l'utilisateur a rentrer un entier strictement positif . J'ai donc fait ca :

    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
     
    int parametre ()
        {
            int m;
            int a=0; // sert a l'affichage de "recommencez"
     
            do
                {
                    if (a!=0) {printf("\nRecommencez svp : "); }  // on demande de le re-rentrer si l'utilisateur a auparavant rentré un nombre <=0
                    scanf("%d",&m);
                    a++;
                }
            while (m<=0);
     
            return m;
        }
    Mais le probleme c'est que si l'utilisateur rentre une lettre ca va bugger... Y a t il un moyen de gerer ce cas ?
    j'avais penser a mettre %[0-9] a la place de %d mais c'est pas bon.
    J'avais aussi penser mettre une autre condition dans la boucle mais m étant définit comme un entier je peux pas faire une condition du genre
    while ((m<=0) && (a<=m<=z) && (A<=m<=Z)) ...

    merci de m'avoir lu.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    salut !
    il me semble qu'il existe une fonction isnumber() qui devrait résoudre ton problème.
    @+

  3. #3
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    Citation Envoyé par Mo4619
    salut !
    il me semble qu'il existe une fonction isnumber() qui devrait résoudre ton problème.
    @+
    isdigit() qu'elle s'appelle. Voir ctype.h

    A+

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    je vais aller voir ca alors
    mirci a vous 2.

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par zac_7
    je vais aller voir ca alors
    mirci a vous 2.
    Ca ne va pas résoudre grand chose. Il a moyen d'utiliser correctement scanf() pour gérer ça :

    http://xrenault.developpez.com/tutoriels/c/scanf/

    Mais le plus simple est de traiter d'abord la ligne lue :

    fgets() + isdigit()

    puis de convertir la valeur

    strtoul()

    Les entrées en C, c'est pas simple...

    http://emmanuel-delahaye.developpez....tes.htm#saisie
    http://emmanuel-delahaye.developpez....s.htm#fichiers
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Tant que la variable "age" n'est pas un nombre
    Par adicarbo dans le forum C
    Réponses: 4
    Dernier message: 13/11/2014, 14h46
  2. tant que non apparu, ne pas déplacer
    Par pipo159 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/04/2008, 21h07
  3. Réponses: 3
    Dernier message: 07/08/2007, 16h12
  4. Réponses: 2
    Dernier message: 01/11/2006, 22h36
  5. desactivé bouton fermer tant que tt n'est pas saisi
    Par mat75019 dans le forum Access
    Réponses: 7
    Dernier message: 11/04/2006, 20h34

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