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 ?