Que fait fflush dans la programmation C

Que fait fflush dans la programmation C
En programmation C, le fflush (stdin) La fonction est utilisée pour effacer la mémoire du tampon d'entrée de toutes les données qui peuvent encore être stockées. Il le fait en libérant n'importe quelle mémoire associée au flux d'entrée standard, connu sous le nom de stdin, qui est l'entrée par défaut utilisée pour lire les données des arguments de ligne de commande ou un clavier. Cela signifie que toutes les données restantes qui n'ont pas été traitées sont rejetées et que toutes les données de la dernière opération d'entrée réussie peuvent être utilisées.

Selon la norme C, en utilisant fflush (stdin) est un modèle peu clair. Certains compilateurs, comme Microsoft Visual Studio, permettent cependant. Même lorsque vous acceptez un numéro entier avec des espaces et discutant de l'entrée précédente pour le même, un tampon n'est pas nettoyé sur l'entrée suivante. Ce problème est résolu en rincer le même flux et le même tampon avec fflush (stdin).

Regardons un exemple:

#inclure
#inclure
int main()

char s [20];
int i;
pour (i = 0; i<3; i++)

printf ("Entrez une chaîne \ n");
scanf ("% [^ \ n] s", s);
printf ("% s \ n", s);
fflush (stdin);

retour 0;

Le code ci-dessus prend une seule entrée et donne le même résultat. Le tampon est ensuite nettoyé en utilisant le fflush (stdin) fonction, puis l'entrée suivante est entrée et imprimée et ainsi de suite.

Sortir

Que fait fflush (stdin) dans la programmation C?

Le fflush (stdin) La fonction est utilisée avec les opérations d'entrée pour s'assurer que les données sont correctement traitées, et rien n'est laissé dans le tampon d'entrée. En programmation C, chaque opération d'entrée laissera certaines données dans le tampon d'entrée. Ces données y sont laissées jusqu'à ce que le programme choisit de les traiter, mais cela peut entraîner des problèmes inattendus. Par exemple, si un programme attend un nombre comme entrée mais que l'utilisateur tape accidentellement dans une lettre, les données laissées dans le tampon seront toujours traitées comme l'entrée suivante. Cela pourrait entraîner une écrasement du programme ou les données sont mal analysées.

En utilisant le fflush (stdin) La fonction peut aider à empêcher que cela ne se produise. La fonction efface le tampon manuellement et donc toutes les données restantes en sont supprimées. Sans cette fonction, l'ordinateur traiterait toujours les données restantes comme entrée suivante, mais maintenant toute erreur peut être capturée, et le programme peut être conçu pour reprocompter l'utilisateur pour l'entrée correcte.

En plus de l'utiliser pour effacer les tampons d'entrée, le fflush (stdin) La fonction peut également être utilisée pour rincer les flux de sortie. Ceci est utile pour les programmes qui nécessitent une sortie en temps réel ou affichent la progression d'un programme. En rinçant le flux de sortie, la sortie la plus récente peut être affichée immédiatement. Sinon, le programme devrait attendre que tout le flux soit plein avant qu'il ne puisse être affiché.

Conclusion

Le fflush (stdin) La fonction est une partie essentielle de la programmation C. En rinçant les données restantes à partir de tampons d'entrée, il aide à empêcher les entrées inattendues de rejeter le programme et de causer des erreurs. De plus, il peut être utilisé pour rincer des flux de sortie qui peuvent être utiles pour afficher des informations en temps réel. Bien qu'il ne soit pas utilisé fréquemment, le fflush (stdin) La fonction est une partie importante de la boîte à outils de tout programmeur.