17.4.2 Lecture dans un fichier texte par fscanf (déconseillé)

Pour la lecture avec fscanf, une précaution supplémentaire s'impose : il faut éviter de lire au‐delà de la limite du fichier (même si on croit en connaître la taille !). On utilise pour cela la fonction feof (End Of File), qui renvoie 0 tant que la fin du fichier n'est pas atteinte. Cette fonction permet de lire un fichier dont on ignore la taille.
Pour fscanf comme pour scanf, si une chaîne de caractères figure entre les codes formats, elle doit être retrouvée très précisément à la lecture, sous peine de mauvais fonctionnement. On peut aussi indiquer à scanf ou fscanf que des éléments non significatifs doivent être ignorés à la lecture grâce au symbole * placé entre le % et la lettre du format. Cela permet de « sauter » les chaînes de caractères non désirées, sans les mémoriser. Par exemple, la lecture d'une ligne du fichier précédent, toujours de la forme element 6 : 123, devient si on veut mémoriser seulement la dernière valeur (123 ici) :
Rappelons que les espaces, les tabulations et les passages à la ligne sont considérés comme des séparateurs par scanf et fscanf, et qu'ils sont automatiquement sautés lors de la lecture d'une valeur numérique ou d'une chaîne de caractères (mais pas d'un caractère !!). |