Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
- #include <time.h>
- #include <string.h>
- /*----------------------------------------------------------------------------------*/
- typedef struct Liste
- {
- int date;
- char *auteur;
- char *titre;
- struct Liste *suivant;
- }Liste;
- //appel fonction
- void serialisation(Liste* root)
- {
- FILE* file=fopen("list_chainee.txt","w");
- if(file == NULL)
- {
- exit(1);
- }
- for(Liste* current = root; current != NULL ; current = current->suivant)
- {
- fprintf(file, "date : %d |titre : %s | auteur %s \n",current->date,current->auteur,current->titre);
- }
- fclose(file);
- }
- //tu lis le fichier et tu fabriques la liste chainée à partir du fichier
- void de_serialisation(Liste** root)
- {
- FILE* file = fopen("list_chainee2.txt","r");
- if(file == NULL)
- {
- exit(2);
- }
- char taillefichier[200];
- while(fgets(taillefichier, sizeof(taillefichier), file) != NULL);
- {
- fputs("Added from file |*\n",stdout);
- fputs(taillefichier,stdout);
- }
- fclose(file);
- }
- /*--------------------------------------------------------------------------*/
- Liste* init(int date ,char *auteur, char *titre );
- void ajouter(Liste **debut, int date, char *auteur, char *titre);
- void libre_list(Liste *liste);
- void imprime(Liste *tmp);
- /*----------------------------------------------------------------------------------*/
- int main()
- {
- Liste *liste = NULL;
- ajouter(&liste,2022,"Albert","toto");
- //imprime(liste);
- ajouter(&liste,2023,"Mario","tata");
- //printf("anne : %d auteur : %s titre :%s\n",liste->date,liste->auteur,liste->titre);
- //imprime(liste);
- //serialisation(liste);
- de_serialisation(liste);
- libre_list(liste);
- return 0;
- }
- void imprime(Liste *tmp)
- {
- while(tmp != NULL)
- {
- printf("anne : %d auteur : %s titre :%s\n",tmp->date,tmp->auteur,tmp->titre);
- tmp = tmp->suivant;
- }
- }
- /*----------------------------------------------------------------------------------*/
- void libre_list(Liste *liste)
- {
- Liste *tmp;
- while(liste !=NULL)
- {
- tmp = liste;
- liste = liste->suivant;
- free(tmp);
- }
- }
- /*----------------------------------------------------------------------------------*/
- Liste* init(int date ,char *auteur, char *titre )
- {
- Liste *liste = malloc(sizeof(Liste));
- //Pour strcpy il faut un malloc pour chaque item de la classe
- // Liste *date = (Liste *) malloc(sizeof(date));
- // Liste *auteur = (Liste *) malloc(sizeof(auteur));//ajout
- // Liste *titre = (Liste *) malloc(sizeof(titre));//ajout
- liste->date = date;
- liste->auteur = auteur;
- liste->titre = titre;
- liste->suivant = NULL;
- //Pour strcpy il faut un malloc pour chaque item de la classe
- //debut->suivant->date = date;
- // strcpy(debut->suivant->auteur,auteur);
- // strcpy(debut->suivant->titre,titre);
- return liste;
- }
- /*----------------------------------------------------------------------------------*/
- void ajouter(Liste **debut, int date, char *auteur, char *titre) {
- Liste *newlist = init(date,auteur,titre);
- if(*debut == NULL)
- {
- *debut = newlist;
- }
- else
- {
- newlist->suivant = *debut;
- *debut = newlist;
- };
- }
- /*----------------------------------------------------------------------------------*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement