Merci d’avoir répondu et dire ce que vous en pensez. Je vais tout de même répondre, le code est dégueulasse parce que j’ai écrit volontairement un code dégueulasse et quel était l'intérêt ; «*mettre l’accent sur les différents points et les difficultés débattues à propos de ces fonctions*»,mais bon..., en même temps, il n'y avait pas raison de poster un autre code pour lancer un autre débat de qualité de code source.
Ceci étant @Sve@r vous avez visé juste sur l’emploi de feof. J’ajouterais également les raisons suivantes. Dans mon code au niveau de la boucle « pour », je suppose déjà que les données ont été lues (l’opération de lecture ou écriture a réussi) hors ce n'est pas le cas. Deuxième chose, la fonction feof renvoie effectivement une valeur non nulle si l’indicateur de fin de fichier a été activé/positionnée. Celle-ci se manifeste uniquement lorsqu’elle a lu un octet de trop. Quant à la fonction fgetc/fputc, elle renverra EOF s'il y a eu d'échecs/fins de fichier atteint (cas de fgetc); bref, l’ensemble est déjà bien pourri.

Quand mon cast a la C... Là, par contre, je ne vous garantis rien à leurs non-emplois, mais éventuellement pourquoi pas.
À bientôt