gets c'est de la merde, la seule raison pertinente d'utiliser cette fonction c'est de faire dire aux étudiants pourquoi il ne faut pas l'utiliser, justement.
fflush(stdin) est à proscrire également. D'ailleurs tu n'as pas à vider le buffer d'entrée si ton analyse de chaîne est faite correctement.
Que faire, alors ?
- on alloue un buffer de taille raisonnable (la proposition de Médinoc me semble tout-à-fait pertinente) ;
- on lit une chaîne avec fgets (ou (f)read, à la rigueur) ;
- on analyse la chaîne avec sscanf ;
- on revient au point 2 s'il reste quelque chose à lire ;
- on fait le traitement et on renvoie le résultat.
Partager