Advertisement
Mikeredina

Untitled

Dec 18th, 2018
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.79 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. typedef struct Osoba{
  6.     char jmeno[50];
  7.     char bydliste[100];
  8.     int plat;
  9.  
  10. }tOsoba;
  11.  
  12.  
  13. tOsoba * nactiOsoby(char * soubor, int *velikost) {
  14.     FILE *f;
  15.     f = fopen(soubor, "r");
  16.     char radek[600];
  17.     fgets(radek, 600, f);
  18.     while (fgets(radek,600,f) != NULL) {
  19.         *velikost = *velikost + 1;
  20.     }
  21.  
  22.     rewind(f);
  23.  
  24.     tOsoba *osoby = (tOsoba*)malloc(*velikost * sizeof(tOsoba));
  25.     char *token;
  26.     char *ptr;
  27.     fgets(radek, 600, f);
  28.     for (size_t i = 0; i < *velikost; i++){
  29.         fgets(radek, 600, f);
  30.         token = strtok(radek, ";");
  31.         strcpy(osoby[i].jmeno, token);
  32.         token = strtok(NULL, ";");
  33.         strcpy(osoby[i].bydliste, token);
  34.         token = strtok(NULL, ";");
  35.         osoby[i].plat = strtol(token,&ptr,10);
  36.  
  37.     }
  38.  
  39.     fclose(f);
  40.  
  41.     return osoby;
  42. }
  43.  
  44. void vypisOsob(int velikost, tOsoba *osoby) {
  45.     for (size_t i = 0; i < velikost; i++)
  46.     {
  47.         printf("%s ; %s ; %d \n",osoby[i].jmeno, osoby[i].bydliste, osoby[i].plat);
  48.     }
  49.  
  50. }
  51.  
  52. void uloz(int velikost, tOsoba *osoby, char *soubor) {
  53.     FILE *f;
  54.     f = fopen(soubor, "w");
  55.     fputs("jmeno;bydliste;plat\n",f);
  56.     int suma = 0;
  57.     int prumer = 0;
  58.     for (size_t i = 0; i < velikost; i++)
  59.     {
  60.         suma += osoby[i].plat;
  61.     }
  62.  
  63.     prumer = suma / velikost;
  64.     for (size_t i = 0; i < velikost; i++)
  65.     {
  66.         if (osoby[i].plat > prumer && strcmp("Brno",osoby[i].bydliste) == 0)
  67.         {
  68.             fputs(osoby[i].jmeno, f);
  69.             fputs(";", f);
  70.             fputs(osoby[i].bydliste, f);
  71.             fputs(";", f);
  72.             fprintf(f, "%d", osoby[i].plat);
  73.            
  74.             fputs("\n", f);
  75.  
  76.         }
  77.  
  78.     }
  79.     fclose(f);
  80. }
  81.  
  82. void dealokuj(tOsoba *pole) {
  83.     free(pole);
  84. }
  85.    
  86.  
  87. int main() {
  88.     int velikost = 0;
  89.     tOsoba *pole = nactiOsoby("jmena.csv", &velikost);
  90.     vypisOsob(velikost, pole);
  91.     uloz(velikost, pole, "prijmeni.csv");
  92.  
  93.     dealokuj(pole);
  94.    
  95.  
  96.   system("pause");
  97.   return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement