Bonjour,
J'ai lu sur le site developpez.com, ici = https://c.developpez.com/faq/?page=G...buffer-clavier, comment vider le buffer clavier.
Je pense ne rien avoir oublié et pourtant cela ne fonctionne toujours pas.
J'ai des problèmes lors de ma saisie multiples lorsque je lance le programme.
Je ne sais pas si vraiment le problème vient de là mais généralement avec la fonction scanf() c'est ça.
Ci-dessous le code source (environs 45 lignes) :
Es ce que quelqu'un à une idée ?
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 // BIBLIOTHEQUES : // ====================================================================================== #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> // ====================================================================================== // FONCTION VIDAGE DU BUFFER CLAVIER : // ====================================================================================== void clean_stdin(void) { int c; do { c = getchar(); } while (c != '\n' && c != EOF); } // ====================================================================================== void main(void) { // DECLARATION DES VARIABLES : int note = 0; float moyenne; bool saisieNote = true; int somme_note = 0; int nombre_note = 0; // ALGO : while(saisieNote) { while(note < -1 || note > 20) { printf("Erreur !\n"); printf("Veuillez recommencer la saisie !\n"); } printf("Entrez - 1 pour arretez la saisie.\n"); printf("Entrez une note : \n"); scanf("%d\n", ¬e); nombre_note++; somme_note = somme_note + note; if(note == -1) saisieNote = false; clean_stdin(); } moyenne = (float) ( ((float)somme_note) / ((float)(nombre_note)) ); printf("Moyenne de la classe : %f\n", moyenne); }
Merci pour votre aide.
Partager