Advertisement
Guest User

Untitled

a guest
Dec 16th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define MAX_GRAD 2
  5. #define MAX_VRSTA 20
  6.  
  7. typedef struct Meso
  8. {
  9. char grad[MAX_GRAD+1];
  10. char vrsta[MAX_VRSTA+1];
  11. double cena;
  12. struct Meso *psledeci;
  13. } Meso;
  14.  
  15. FILE* safeopen(char naziv[], char mode[]);
  16. int ucitaj(FILE*f, Meso** glava);
  17. void inicijalizuj(Meso** glava);
  18. void ispisi (Meso* glava);
  19.  
  20. int main()
  21. {
  22. FILE*fu;
  23. Meso* glava;
  24. int n;
  25.  
  26. fu=safeopen("meso.txt", "r");
  27. inicijalizuj(&glava);
  28. ispisi(glava);
  29. n=ucitaj(fu, &glava);
  30.  
  31. printf("Imamo %d elemenata u listi \n", n);
  32. ispisi(glava);
  33. fclose(fu);
  34.  
  35.  
  36. return 0;
  37. }
  38.  
  39. FILE* safeopen(char naziv[], char mode[])
  40. {
  41. FILE*f;
  42. f=fopen(naziv, mode);
  43. if(f==NULL)
  44. {
  45. exit(EXIT_FAILURE);
  46. }
  47.  
  48. return f;
  49.  
  50. }
  51.  
  52. void inicijalizuj(Meso** glava)
  53. {
  54. * glava= NULL;
  55. return;
  56. }
  57.  
  58. int ucitaj(FILE*f, Meso** glava)
  59. {
  60. Meso a;
  61. Meso* novi;
  62. Meso* tekuci;
  63. int i=0;
  64.  
  65. while(fscanf(f, "%s %s %lf", a.grad, a.vrsta, &a.cena) != EOF)
  66. {
  67. i++;
  68. novi= (Meso*)malloc(sizeof(Meso));
  69.  
  70. if(novi==NULL)
  71. {
  72. printf("Nema dovoljno memorije. ");
  73. exit(EXIT_FAILURE);
  74. }
  75.  
  76. strcpy((*novi).grad, a.grad);
  77. strcpy((*novi).vrsta, a.vrsta);
  78. (*novi).cena=a.cena;
  79.  
  80.  
  81. }
  82.  
  83. return i;
  84. }
  85.  
  86. void ispisi(Meso* glava)
  87. {
  88. Meso*tekuci;
  89. tekuci=glava;
  90.  
  91. if(tekuci==NULL)
  92. printf("Lista je prazna. \n");
  93. else
  94. {
  95. while(tekuci != NULL)
  96. {
  97. printf("%s %s %6.2lf \n\n", (*tekuci).grad, (*tekuci).vrsta, (*tekuci).cena);
  98. tekuci=(*tekuci).psledeci;
  99. }
  100. }
  101.  
  102. return;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement