Métro : un fragment de corrigé (la lecture dans un fichier)

, par Pierre

Juste une petite fonction.

  1. /* Charger une ligne de métro décrite dans un fichier */
  2. ligne_t *charger(const char *s) {
  3.   FILE *f;
  4.   char tampon[256]; /* zone tampon contenant les caractères lus */
  5.   ligne_t *h;
  6.   double numero;
  7.   int taille;
  8.  
  9.   f = fopen(s, "r");
  10.   assert(f); /* <-- utiliser #include <assert.h> */
  11.  
  12.   /* 1) lire le nom de la ligne (un double) */
  13.   fscanf(f, "%lf", &numero);
  14.   h = creer_ligne(numero);
  15.  
  16.   /* 2) lire le nombre de stations (on ne s'en sert pas)  */
  17.   fscanf(f, "%d", &taille);
  18.  
  19.   /* 3) lire la liste des stations */
  20.  
  21.   /* lire une ligne */
  22.   fgets(tampon, 256, f);
  23.   while (!feof(f)) {/* tant que la dernier lecture n'a pas atteint la
  24.                        fin du fichier */
  25.     /* ajouter le contenu du tampon sans \n aux stations */
  26.     /* supprimer le \n final */
  27.     tampon[strlen(tampon) - 1] = '\0';
  28.     /* effectuer l'ajout */
  29.     ajouter_station_fin(h, tampon);
  30.     /* lire la ligne suivante */
  31.     fgets(tampon, 256, f);
  32.   }
  33.   fclose(f);
  34.   return h;
  35. }

Télécharger

Revenu et logement, Je livre ici quelques éléments de comparaison concernant mon niveau de vie, pour couper court à quelques idées reçues, et un condensé de nombreuses (...)
Revenu et travail d’un enseignant-chercheur, Cet article complète l'article Revenu et logement, en détaillant un peu le budget de mon ménage, mon parcours d'enseignant-chercheur en terme de (...)
Cybersyn (el systemo synco), Au café, mardi 5 avril 2011, j'ai bien vu que, mis à part Antoine Allombert, personne ne connaissait l'histoire de l'extraordinaire projet chilien (...) [jpg, jpg, png]