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 :

Problème programme C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Par défaut Problème programme C
    Bonjour,
    J'ai un TP de c a faire et je rencontre un petit problème : Voici le code :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    static float lireReel(float min,float max ){
          return lireReelMess(min, max, "_silent_") ;
       }
     
    static float lireReelMess(float min,float max,const char* invite ){
          int cr ;
          bool fini ;
          float n ;
          char buf[256] ;
     
          fini = false ;
          while ( !fini ){
             assert (min <= max) ;
             if ( 0 == strcmp(invite,"") )
                (void)printf ( "Entrer un nombre rÈel compris entre %.2f et %.2f\n",min, max ) ;
             else if ( 0 != strcmp(invite,"_silent_") )
                (void)printf ( "%s",invite ) ;
             assert ( buf == fgets(buf,sizeof(buf),stdin) ) ;
             cr = sscanf(buf,"%f",&n) ;
             if ( cr != 1 || n < min || n > max ) {
                (void)printf("Saisie incorrecte, recommencez!\n") ;
                (void)printf ( "Entrer un nombre rÈel compris entre %.2f et %.2f\n",min, max ) ;
             }
             else
                fini = true ;
          }
          assert ( min <= n && n <= max ) ;
          return n ;
    Mon problème est le suivant ; lorsque je rentre des réels via l'action sscanf (dans la variable n), ces réels sont convertis en entier ! je ne comprend vraiment pas pourquoi... Voyez vous ce qui ne va pas ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Salut

    Donne envie aux lecteurs de se pencher sur ton code. A l'heure actuelle, c'est illisible.
    Utilise les balises CODE prévues à cet effet, en n'oubliant pas d'indenter ton code.

  3. #3
    Membre actif
    Avatar de fmdao
    Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut
    Essaye avec %e ?

    Pas besoin de mettre (void) avant les appels de fonctions.
    Dans printf inutile de préciser %s pour afficher une chaine de caractères.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Bannis tous ces assert. Tu risques va avoir des surprises.

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Par défaut
    si je supprime
    assert ( buf == fgets(buf,sizeof(buf),stdin) ) ;
    j'ai une boucle infinie.

    Meme phénomène constaté en modifiant %f par %e...

    En fait le code ne vient pas de moi. C'est pour un TP. Le prof nous fournis le squelette du programme et on doit completer en suivant un cahier des charges.
    Mais j'ai remarqué ce comportement que je ne comprend absolument pas...

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Par défaut
    a non enfaite ça marche en remplaçant %f par %e

    merci bcp de vos réponses ^^

    bonne soirée

Discussions similaires

  1. Problème Programmation MFC
    Par xyz dans le forum MFC
    Réponses: 17
    Dernier message: 13/05/2006, 20h00
  2. Problème Programmation MFC
    Par xyz dans le forum Réseau
    Réponses: 3
    Dernier message: 13/05/2006, 14h36
  3. [Problème] Programme huit reines
    Par thegreatbato dans le forum C
    Réponses: 20
    Dernier message: 04/05/2006, 22h04
  4. Problème programmation : log
    Par rootsl dans le forum C
    Réponses: 4
    Dernier message: 29/03/2006, 11h26
  5. Problème programmation objet
    Par Contrec dans le forum MFC
    Réponses: 54
    Dernier message: 30/03/2005, 11h30

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