• [^] # Re: Code bon :)

    Posté par . En réponse au message Mettre un fichier dans une matrice. Évalué à 2.

    Alors, en ce qui concerne la "qualité" de ton code (chacun a sa propre vision de ce qui est "bien", donc prend la suite avec des pincettes) :
    - atoi() aurait pu servir, si tu avais des nombres qui tiennent sur plus d'un caractère (en fait, ce ne seraient plus des "chiffres"), mais comme il travaille sur des chaînes C, il aurait fallu lui fournir soit des chaînes terminées par 0円. Bref, dans ton cas, c'est cool ça marche bien avec l'astuce c-'0'.
    - Pour les boucles, avec l'expérience, j'ai appris à toujours commencer par 0 et à utiliser quasi uniquement des strictement inférieur. Pour moi c'est beaucoup plus lisible.
    - fgetc() est un peu "bancal" dans le signalement d'EOF, et une utilisation correcte voudrait que tu récupères d'abord un int, le teste voir si ce n'est pas un EOF, et _après_ tu cast vers un _unsigned_ char, qui est la manière la plus "naturelle" de bosser sur des caractères ASCII (ton -38 pour le retour à la ligne je trouve ça moche par rapport à un '\n' ... d'ailleurs pourquoi -38 ? ça a l'air de correspondre à rien de très logique ...) et te permettera surtout de différencier un caractère 0xff dans ton fichier par rapport à la vraie fin du fichier.
    - D'un autre coté, si tu sais que tu auras _exactement_ 6 caractères sur une ligne (5 chiffres + un LF), t'as pas besoin de faire de test du tout, juste un getc() dans le vide.
    - Mais bon, on voit bien que t'essayes de te soucier un peu des cas d'erreurs possibles, mais il reste encore plein de "failles" si tu voulais faire un truc robuste. D'un côté, ce n'est peut-être pas ton objectif ...