Developpez.com - C
X

Choisissez d'abord la catégorieensuite la rubrique :

next up previous contents index
Next: Pointeurs vers une structure Up: Structures, unions et énumérations Previous: Tableaux de structures

Exercice

Soit un fichier de données identiques à celui de l'exercice précédent.

Écrire une procédure main qui :

1.
lise le fichier en mémorisant son contenu dans un tableau de structures, chaque structure permettant de mémoriser le contenu d'une ligne (nom, article, nombre et prix).
2.
parcoure ensuite ce tableau en imprimant le contenu de chaque structure.
#include <stdio.h>

/*****************************************************************************/
/*                              main                                         */
/*****************************************************************************/
int main()
{
FILE * fi;
struct commande
   {
   char nom[80];
   char article[80];
   int nombre,prix;
   };

#define nb_com 100
struct commande tab_com[nb_com];   /*   tableau des commandes   */

int i;   /*   index dans tab_com   */
int ilast;   /*   dernier index valide dans tab_com après remplissage   */

if ((fi = fopen("exer7.data","r")) == NULL)
   printf("Impossible d'ouvrir le fichier exer7.data\n");
else
   {
   /*   boucle de lecture des commandes   */
   /*   -------------------------------   */
   i = 0;

   while(i < nb_com && fscanf(fi,"%s %s %d %d",
                             tab_com[i].nom,
                             tab_com[i].article,
                             &tab_com[i].nombre,
                             &tab_com[i].prix) != EOF)
      i++;   /*   corps du while */

   if (i >= nb_com)
      printf("le tableau tab_com est sous-dimentionné\n");
   else
      {
      /*   impression des commandes mémorisées   */
      /*   -----------------------------------   */
      ilast = i - 1;
   
      for (i = 0; i <= ilast; i++)
         printf("%s %s %d %d\n", tab_com[i].nom, tab_com[i].article,
                                 tab_com[i].nombre, tab_com[i].prix);

      fclose(fi);
      }
   }
}



Bernard Cassagne
1998-12-09
Contacter le responsable de la rubrique C