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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
while((c = getchar()) != '\n' && c != EOF);
semble ne vider que le buffer lié au tableau nom(le deuxième renseigné).

Cordialement.