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
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Personne
{
char nom[30];
char prenom[30];
};
static void fclean(char *buffer, FILE *stream);
int main(void)
{
struct Personne pers;
printf("Quel est votre nom?\n");
/* On réalise la saisie et on nettoie*/
fgets(pers.nom, sizeof pers.nom, stdin);
fclean(pers.nom, stdin);
printf("Quel est votre prenom?\n");
/* On réalise la saisie et on nettoie*/
fgets(pers.prenom, sizeof pers.prenom, stdin);
fclean(pers.prenom, stdin);
printf("Vous vous appelez %s %s\n", pers.nom, pers.prenom);
return EXIT_SUCCESS;
}
static void fclean(char *buffer, FILE *stream)
{
/* On recherche la présence de '\n' dans le tampon buffer */
char * p = strchr (buffer, '\n');
if (p != NULL) /* '\n' a été trouvé */
{
*p = 0;
}
else /* L'entrée a été tronquée: on vide le tampon du flux stream */
{
int c;
while ((c = fgetc(stream)) != '\n' && c != EOF)
{
continue;
}
}
} |