Salut,
Après avoir lu un cours sur la saisie sécurisée via scanf, j'ai tenté d'écrire un code en faisant exprès de dépasser les nombres de caractères maximales proposés par les tableaux:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
int main()
{
char prenom[10];
char nom[15];
printf("Comment vous appelez-vous ?\n");
scanf("%9s %14s", prenom, nom);
int c;
while((c = getchar()) != '\n' && c != EOF);
printf("Vous vous appelez %s %s", nom, prenom);
} |
Lorsque je respecte la limite du nombre de caractère, ça marche, seulement, quand je dépasse sur le tableau prenom (donc le premier renseigné), les caractères en trop sont attribués au tableau nom.. 
J'aimerais savoir si il est possible de vider le buffer pour le prénom, car cette ligne:
while((c = getchar()) != '\n' && c != EOF);
semble ne vider que le buffer lié au tableau nom(le deuxième renseigné).
Cordialement.
Partager