Soit un fichier de données identiques à celui de l'exercice précédent.
Écrire une procédure main qui :
#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);
}
}
}