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
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* -tc- elimine le caratere de fin de ligne saisi par fgets() et faire le menage
sur le flux entrant en cas de saisie tronquee */
void fclean(char *buffer, FILE *fp)
{
if (buffer != NULL && fp != NULL)
{
char *pc =strchr(buffer, '\n');
if (pc != NULL)
{
*pc = 0;
}
else
{
int c;
while ((c = fgetc(fp)) != '\n' && c != EOF)
{
}
}
}
}
int main(void)
{
/* -tc- j'aime bien initialiser toutes les cases de mon tampon a 0 */
char saisie[16] = "";
int nb = 0;
/* -tc- pour la gestion des erreurs avec strtol() */
char *pend = NULL;
do
{
printf("Entrez un nombre: ");
fflush(stdout);
/* -tc- il n'est pas recommande de coder la taille de saisie en dur */
fgets(saisie, sizeof saisie, stdin);
fclean(saisie, stdin);
nb = strtol(saisie, &pend, 0);
}
while (*pend != 0);
printf("Le nombre entre est %d!\n", nb);
return 0;
} |
Partager