Heu .. pas d'accord : c'est un "while", donc ça effectue des read tant qu'il reste des trucs à lire PUIS ça les affiche
Donc, s'il y a plusieurs caractères dansle buffer, ça doit tous les dépiler en bloc avant de passer à la suite
A moins que l'entrée série ne soit pas bufferisée, auquel cas, le tampon à le temps de devenir vide avant l'arrivée du caractère suivant.
Mais sur une console série "de base", les caractères sont envoyés en bloc après appui sur "entrée"
Tu utilises quoi pour tester ? la console série de l'IDE Arduino ?
Par contre, c'est sur que si tu fais "a" "entrée" "b" entrée" ... ça explique tout :
- le buffer a le temps de se vider entre "a" et "b"
- les retours à la ligne sont pris comme des caractères à afficher, et c'est pourquoi tu passes à la ligne tout le temps