Bonjour j'ai un exercice simple à faire qui consiste à afficher un chiffre en lettres et à boucler jusqu'à ce que le caractère # soit saisi. J'ai essayé de faire comme Svear m'a dit, de séparer saisie et traitement et d'utiliser le fgets, est-ce que c'est bien comme ça qu'il faut faire ?
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 #include <stdio.h> #include <string.h> char saisie() { char chiffre; char buffer[1024]; char *c; printf("Saisir un chiffre : "); fgets(buffer, 1024, stdin); if (c=strchr(buffer, '\n')) *c='\0'; sscanf(buffer, "%c", &chiffre); if(strlen(buffer)==1 && ((chiffre >=48 && chiffre <=57) || chiffre==35)) return chiffre; else printf("Le caractere saisi n'est pas un chiffre."); } int main() { char chiffre; do { chiffre=saisie(); if(chiffre=='0') printf("ZERO\n"); else if(chiffre=='1') printf("UN\n"); else if(chiffre=='2') printf("DEUX\n"); else if(chiffre=='3') printf("TROIS\n"); else if(chiffre=='4') printf("QUATRE\n"); else if(chiffre=='5') printf("CINQ\n"); else if(chiffre=='6') printf("SIX\n"); else if(chiffre=='7') printf("SEPT\n"); else if(chiffre=='8') printf("HUIT\n"); else if(chiffre=='9') printf("NEUF\n"); }while(chiffre!='#'); return 0; }
Partager