Fonction d'écriture formatée fprintf: fichier texte

Ecriture formatée dans un fichier texte: fprintf

                                                       int fprintf(FILE* f, char* format, arg1,arg2,...);

Fait la même chose qu'un printf mais écrit dans le fichier f plutôt qu'à l'écran. fprintf retourne le nombre de caractères écrit (sans le '\0') en cas de succès et une valeur négative en cas d'échec.

==> c'est le programmeur qui décide du format de sauvegarde: ainsi, par exemple, pour sauvegarder des points dans un fichier texte on peut choisir le format:
(x,y)
Dans ce cas l'écriture formatée sera: fprintf(f, "(%d,%d)\n", p.x, p.y);
#include<stdio.h>
typedef struct {
                      int x;
                      int y;
                     } point;
int main(void)
{
FILE* f;
point p1 = {12,23};
point p2 = {78,89};
f = fopen("sauverPoints", "wt");
if (f = = NULL)
    printf ("Erreur ...");
else
   {
     fprintf(f,"(%d,%d)\n", p1.x,p1.y);    

               /* une écriture dans le fichier \n pour passage à la ligne */

      fprintf(f,"(%d,%d)\n", p2.x,p2.y);    
                   /
* une écriture dans le fichier \n pour passage à la ligne */

   
}
fclose(f);   /* ajoute EOF au fichier et ferme le fichier */
}
REMARQUES

  • Le caractère de nouvelle ligne \n doit être ajouté car il n'est pas automatiquement inséré
  • Il faudra que le format de lecture soit le même (cf. fscanf dans la suite du cours)




Contenu du fichier sauverPoints après exécution
(12,23)
(78,89)
EOF
suivant            plan