1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| #include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include "entree_sortie.h"
#define TAILLEMAX 32
#define TMAX 1024
typedef struct livre{
char *titre;
char *auteur;
int num;
}Livre;
void affiche(int n, char* nomfichier){
FILE *f= fopen(nomfichier,"r");
if(f==NULL){
fprintf(stderr,"ERREUR_OUVERTURE_FICHIER");
exit(1);
}
char Titre[TAILLEMAX];
char Auteur[TAILLEMAX];
int j,k;
Livre** Tab=(Livre **)malloc(sizeof(Livre *)*TMAX);
if(Tab==NULL){
fprintf(stderr,"ERREUR_ALLOCTAB");
exit(1);
}
for(j=0;j<TMAX;j++){
Tab[j]=NULL;
}
int ligne=0;
while(ligne<n){
int entier;
entier= GetEntier(f);
Skip(f);
GetChaine(f,TAILLEMAX,Auteur);
Skip(f);
GetChaine(f,TAILLEMAX,Titre);
SkipLine(f);
Tab[ligne]=(Livre *)malloc(sizeof(Livre));
if(Tab[ligne]==NULL){
fprintf(stderr,"ERREUR_ALLOCTABLIGNE");
exit(1);
}
Tab[ligne]->titre=strdup(Titre);
printf("%s ",Tab[ligne]->titre);
Tab[ligne]->auteur=strdup(Auteur);
printf("%s ",Tab[ligne]->auteur);
Tab[ligne]->num=GetEntier(f);
printf("%d\n",Tab[ligne]->num);
ligne++;
}
fclose(f);
}
int main(){
affiche(19,"GdeBiblio.txt");
return 0;
} |
Partager