Advertisement
mario_mos

Serealisation

Jul 28th, 2023
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.49 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <string.h>
  6. /*----------------------------------------------------------------------------------*/
  7. typedef struct Liste
  8. {
  9. int date;
  10. char *auteur;
  11. char *titre;
  12. struct Liste *suivant;
  13.  
  14. }Liste;
  15.  
  16. //appel fonction
  17.  
  18. /*--------------------------------------------------------------------------*/
  19. void serialisation(Liste* root)
  20. {
  21. FILE* file=fopen("list_chainee.txt","w");
  22. if(file == NULL)
  23. {
  24. exit(1);
  25. }
  26. for(Liste* current = root; current != NULL ; current = current->suivant)
  27. {
  28. fprintf(file, "date : %d |titre : %s | auteur %s \n",current->date,current->auteur,current->titre);
  29.  
  30. }
  31. fclose(file);
  32. }
  33.  
  34. /*--------------------------------------------------------------------------*/
  35. Liste* init(int date ,char *auteur, char *titre );
  36. void ajouter(Liste **debut, int date, char *auteur, char *titre);
  37. void libre_list(Liste *liste);
  38. void imprime(Liste *tmp);
  39.  
  40. /*----------------------------------------------------------------------------------*/
  41.  
  42.  
  43. int main()
  44. {
  45. Liste *liste = NULL;
  46. ajouter(&liste,2022,"Albert","toto");
  47. //imprime(liste);
  48. ajouter(&liste,2023,"Mario","tata");
  49. //printf("anne : %d auteur : %s titre :%s\n",liste->date,liste->auteur,liste->titre);
  50. imprime(liste);
  51. serialisation(liste);
  52.  
  53.  
  54. libre_list(liste);
  55.  
  56.  
  57. return 0;
  58. }
  59.  
  60. /*-------------------------------------------------*/²&
  61. void imprime(Liste *tmp)
  62. {
  63.  
  64. while(tmp != NULL)
  65. {
  66. printf("anne : %d auteur : %s titre :%s\n",tmp->date,tmp->auteur,tmp->titre);
  67. tmp = tmp->suivant;
  68.  
  69. }
  70. }
  71. /*----------------------------------------------------------------------------------*/
  72.  
  73. void libre_list(Liste *liste)
  74. {
  75. Liste *tmp;
  76. while(liste !=NULL)
  77. {
  78. tmp = liste;
  79. liste = liste->suivant;
  80. free(tmp);
  81. }
  82. }
  83.  
  84. /*----------------------------------------------------------------------------------*/
  85.  
  86. Liste* init(int date ,char *auteur, char *titre )
  87. {
  88. Liste *liste = malloc(sizeof(Liste));
  89. //Pour strcpy il faut un malloc pour chaque item de la classe
  90. // Liste *date = (Liste *) malloc(sizeof(date));
  91. // Liste *auteur = (Liste *) malloc(sizeof(auteur));//ajout
  92. // Liste *titre = (Liste *) malloc(sizeof(titre));//ajout
  93. liste->date = date;
  94. liste->auteur = auteur;
  95. liste->titre = titre;
  96. liste->suivant = NULL;
  97. //Pour strcpy il faut un malloc pour chaque item de la classe
  98. //debut->suivant->date = date;
  99. // strcpy(debut->suivant->auteur,auteur);
  100. // strcpy(debut->suivant->titre,titre);
  101. return liste;
  102. }
  103.  
  104. /*----------------------------------------------------------------------------------*/
  105. void ajouter(Liste **debut, int date, char *auteur, char *titre) {
  106.  
  107. Liste *newlist = init(date,auteur,titre);
  108. if(*debut == NULL)
  109. {
  110. *debut = newlist;
  111.  
  112. }
  113. else
  114. {
  115. newlist->suivant = *debut;
  116. *debut = newlist;
  117. };
  118. }
  119. /*------------------RESULTAT----------------------------------------------------------------------------
  120. mariomoser@Debian:~/C_learning_journey/build-listechainees-Desktop-Debug$ cat list_chainee.txt
  121. date : 2023 |titre : Mario | auteur tata
  122. date : 2022 |titre : Albert | auteur toto
  123. mariomoser@Debian:~/C_learning_journey/build-listechainees-Desktop-Debug$
  124.  
  125. ---------------------------------------------------------------------------------------------------------*/
  126.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement