• [^] # Re: Un test...

    Posté par . En réponse au message problème avec la boucle do while. Évalué à 3. Dernière modification le 13 février 2020 à 12:57.

    Le problème vient de scanf qui ne va pas vider complètement le tampon d'entrée (stdin ).
    Il prend ce qui l'intéresse et va laisser le traîner le retour à la ligne que vous l'utilisateur a envoyé en appuyant sur Entrée.

    Il faut vider proprement le tampon d'entrée après un scanf:

    {
    int c;
    while ((c = getchar()) != '\n' && c != EOF);
    }

    Laisser l'utilisateur taper un login de plus de 9 caractères et vous un problème similaire: le mot de passe va consommer le surplus.

    Enfin, dans mon code. Dans le votre, avec gets -qu'il-ne-faut-pas-utiliser-, vous aurez un dépassement de tampon qui va empiéter sur le code lui-même.