• [^] # Re: Accolades...

    Posté par . En réponse au message programme c qui émule la commande cat (amélioration). Évalué à 2.

    Je répond ici c'que c'est bien indenté :)
    Merci ;)

    En indentant, je voulais juste montrer des choses que d'autres ont fait remarquer, mais qui n'était pas évidentes sur un code "plat". En particulier:
    - le close() est perdu tout seul en-dehors de la boucle principale... On ne fermera donc qu'un fichier au plus ! Le close devrait être en fin du else, dans la boucle.
    - le else ne contient qu'une seule instruction ! Soit il manque les accolades autour de tout le bloc qui suit, soit on se repose sur le fait qu'il y ait un exit dans le if pour ne pas faire de else (les deux styles existent, chacun fait son choix). Mais je penche pour un oubli des accolades (ça arrive à tout le monde).
    - la boucle d'écriture while (byte_lu > 0) ne contient pas le read. Donc, comme dit par ailleurs, boucle infinie.

    Plus que l'utilisation des fonctions read et write, le fait d'avoir mal placé le close par rapport à la boucle sur les paramètres, ou le read par rapport à la boucle de lecture/écriture, montre qu'il y a qu'il faut surtout travailler sur l'algorithmique et la manière de traduire un algorithme en "pseudo-langage" (ou tout formalisme que tu as pu apprendre dans tes cours) vers un programme C.

    Ce ne sont pas des erreurs graves, loin de là ; ce genre d'exercices est justement fait pour les corriger. Mon conseil d'utiliser un éditeur qui fait de l'indentation automatique (ou un outil comme indent) est lié au fait qu'une bonne indentation (et une coloration syntaxique) du code permet de mieux voir les blocs de code, et de repérer les erreurs de ce genre.