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;
}