A voir également:
- Je debute en C et déjà un pbl avec scanf
- Scanf windows - Guide
- Chanson avec bruit de moteur au début ✓ - Forum Musique / Radio / Clip
- Musique avec cloche au debut - Forum Musique / Radio / Clip
- Scanf en java ✓ - Forum Java
- Afficher le 0 en début de cellule excel - Guide
1 réponse
Ce que tu ne comprends pas c'est le fonctionnement du scanf.
En faite le scanf ne lis pas chaque caractére à chaque fois que tu le tapes et il n'attends pas non plus qu etu tapes sur entrées pour fonctionner.
Explication:
Quand le prog rencontre un scanf %c il lit le premier caractére qui est entrée dans le buffer du pc puis le supprime, le second caractére du buffer devient alors premier. Si il n'y a pas de caractére dans le buffer il attend. Le %s marche pareil sauf qu'il lit tout les caractére du buffer au lieu d'un seul.
Voila pour le scanf.
Ce qu'il faut aussi comprendre c'est comment marche le buffer. Quand tu tapes des caractéres il ne rentre pas directement dans le buffer. C'est lorsque tu tape entrée que tout les caractére que tu as saisis partent dans le buffer.
Ainsi dans ton prog. Quand tu arrives au scanf le buffer est vide donc il s'arrete et attend.
Tu saisis la liste de caractére puis tu tapes entrée tous partent dans le buffer.
Alors le scanf prend le premier caractére et le supprime du buffer. Au 2eme passage de ta boucle le scanf prends le 1er caractére du buffer qui est en faite le 2eme de ta chaine. Et ainsi de suite : tant qu'il ya des caractéres dans le buffer le scanf continue sans arréter le prog. Le '\n' est le dernier caractére de ta chaine donc tu fini ta boucle en ayant vidé le buffer.
En faite le scanf ne lis pas chaque caractére à chaque fois que tu le tapes et il n'attends pas non plus qu etu tapes sur entrées pour fonctionner.
Explication:
Quand le prog rencontre un scanf %c il lit le premier caractére qui est entrée dans le buffer du pc puis le supprime, le second caractére du buffer devient alors premier. Si il n'y a pas de caractére dans le buffer il attend. Le %s marche pareil sauf qu'il lit tout les caractére du buffer au lieu d'un seul.
Voila pour le scanf.
Ce qu'il faut aussi comprendre c'est comment marche le buffer. Quand tu tapes des caractéres il ne rentre pas directement dans le buffer. C'est lorsque tu tape entrée que tout les caractére que tu as saisis partent dans le buffer.
Ainsi dans ton prog. Quand tu arrives au scanf le buffer est vide donc il s'arrete et attend.
Tu saisis la liste de caractére puis tu tapes entrée tous partent dans le buffer.
Alors le scanf prend le premier caractére et le supprime du buffer. Au 2eme passage de ta boucle le scanf prends le 1er caractére du buffer qui est en faite le 2eme de ta chaine. Et ainsi de suite : tant qu'il ya des caractéres dans le buffer le scanf continue sans arréter le prog. Le '\n' est le dernier caractére de ta chaine donc tu fini ta boucle en ayant vidé le buffer.