Voila je dois faire un programme qui lit une chaine de caractère et l'interprète comme un nombre réel
On doit mémoriser le résultat dans une variable, si le nombre est correct la variable est affichée sinon on affiche erreur

J'ai procéder comme ça :
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
# define MAX 100
#define FFL __fpurge(stdin)
 
//Prototypage des fonctions
 
void codage(char phrase[MAX]);
 
main()
{
    char phrase[MAX];
 
    printf("Entrer la phrase à coder:\n");
    __fpurge(stdin);
 
    gets(phrase);
 
    codage(phrase);
}
 
/********************************************************************
Objectif: Transforme une chaine de caractère en un réel et l'affiche
Entrée:Une chaine de caractère
Sortie:Rien
*********************************************************************/
 
void codage(char phrase[MAX])
{
    double nbr1;
    //printf("%*f", atof(phrase));
    nbr1 = atof(phrase);
 
    if (isdigit(nbr1) != 0) 
    {
        printf("ERREUR!!");
    }   
    else
    { 
        printf("%*f", nbr1);
        printf("\n");
    }
}
Mais j'ai un problème car pour -123 45 il 'affiche pas le message d'erreur