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
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fclean(char *tampon, FILE *fp);
int main(void)
{
double b = 0.0;
char tampon[15] = "";
char *pend = NULL;
do
{
printf("Entrez b: ");
/* -tc- necessaire pour forcer l'affichage de l'invite */
fflush(stdout);
if (fgets(tampon, sizeof tampon, stdin) != NULL)
{
fclean(tampon, stdin);
b = strtod(tampon, &pend);
}
}
while(*pend != '\0');
printf("Le nombre b vaut: %.2f\n", b);
return EXIT_SUCCESS;
}
/* -tc- elimine le caractere de fin de ligne saisie par fgets() et purge le
* flux d'entree standard si necessaire (saisie tronquee). Pour plus de
* details, voir les archives du forum C.
*/
void fclean(char *tampon, FILE *fp)
{
if (tampon != NULL && fp != NULL)
{
char *pc = strchr(tampon, '\n');
if (pc != NULL)
{
*pc = 0;
}
else
{
int c;
while ((c = fgetc(fp)) != '\n' && c != EOF)
{
}
}
}
} |
Partager