Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS C FAQs C TUTORIELS C LIVRES C COMPILATEURS C SOURCES GTK+
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
Responsable bénévole de la rubrique C : Arnaud Feltz (buchs) - Contacter par EMail :
Vos questions techniques : forum d'entraide C - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.