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:
{intc;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.
[^] # Re: Un test...
Posté par David Marec . 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
scanfqui 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: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.