probleme saut de ligne avec scanf

probleme saut de ligne avec scanf - C - Programmation

Marsh Posté le 08-11-2010 à 11:44:21    

bonjour tous le monde,je suis debutant en c j'ai un probleme de saut de ligne avec la fonction scanf j'arrive pas a le resoudre,si quelqu'un peut m'aider,voila le code.et merci.

Code :
  1. #include <stdio.h>
  2. #include <conio.h>
  3. main()
  4. {
  5.       float note1,note2,note3,coefficient,note_finale,note_finale1,note_finale2,note_finale3,moyenne_generale;
  6.       printf("Matiere" );
  7.       printf("\t    Note/20" );
  8.       printf("\tCoefficient" );
  9.       printf("\tNote finale" );
  10.       printf("\n\nMath\t    " );
  11.       scanf("%f",&note1);
  12.       printf("\t\t\t" );
  13.       printf("2\t\t" );
  14.       note_finale1=note1*2;
  15.       printf("%.2f",note_finale1);
  16.       printf("\n\nphysique    " );
  17.       scanf("%f",&note2);
  18.       printf("\t" );
  19.       printf("\t\t1\t\t" );
  20.       note_finale2=note2;
  21.       printf("%.2f",note_finale2);
  22.       printf("\n\njava\t    " );
  23.       scanf("%f",&note3);
  24.       printf("\t\t\t" );
  25.       printf("3\t\t" );
  26.       note_finale3=note3*3;
  27.       printf("%.2f",note_finale3);
  28.       note_finale=note_finale1+note_finale2+note_finale3;
  29.       coefficient=6;
  30.       moyenne_generale=note_finale/coefficient;
  31.       printf("\n\nla moyenne generale est : %.2f/20 ",moyenne_generale);
  32.      
  33.  
  34.       getch();
  35. }

Reply

Marsh Posté le 08-11-2010 à 11:44:21   

Reply

Marsh Posté le 09-11-2010 à 17:32:03    

[:melon]  
 
J'ai pas compris quel est ton problème.


---------------
sheep++
Reply

Marsh Posté le 09-11-2010 à 22:06:13    

h3bus a écrit :

[:melon]  
 
J'ai pas compris quel est ton problème.


scanf imprime le CR de la saisie:
 

Citation :


G:\DATABASE\PROG\vc2008\moy\Debug>moy
Matiere     Note/20     Coefficient     Note finale
 
Math        16
                        2               32.00
 
physique    14
                        1               14.00
 
java        13
                        3               39.00
 
la moyenne generale est : 14.17/20


 
Je pense qu'une solution possible est de faire une fonction combinant l'utilisation de getch() et putch() pour lire les caractères recus  et s'ils sont corrects on les affiche en calculant la note


Message édité par breizhbugs le 09-11-2010 à 22:10:40

---------------
Seul Google le sait...
Reply

Marsh Posté le 09-11-2010 à 22:25:01    

Citation :

scanf imprime le CR de la saisie:

Non: C'est le retour chariot de la saisie qui est pris en compte par la console (ben oui, avant d'arriver a ton programme, ça transite par la console).
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 09-11-2010 à 22:34:25    

ah ok, ben merci de la précision!
 
Sinon voici une ébauche de la fonction a laquelle je pense:

Code :
  1. float LireNombre()
  2. {
  3. float r = 0.0;
  4. int digit = 0;
  5. do
  6. {
  7.  digit = _getch();
  8.  if (isdigit(digit))
  9.  {
  10.   r = r *10.0 + (digit - '0');
  11.   _putch(digit);
  12.  }
  13. }while(digit != 13); // 13 = touche "entrée"
  14. return r;
  15. }


Faut encore la modifier pour lire les nombres à virgule, et diverses petites améliorations (note entre 0.0 et 20.0 par exemple)  
(Sinon le CTRL+C ne marche pas pour interrompre le programme!)


Message édité par breizhbugs le 09-11-2010 à 22:37:27

---------------
Seul Google le sait...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed