Advertisement
fallenangel121

Untitled

Apr 10th, 2020
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.81 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <stdlib.h>
  4. #include<stdio.h>
  5.  
  6. typedef enum Gender {
  7.     Female = 0,
  8.     Male = 1
  9. } Gender;
  10.  
  11. typedef struct data_human {
  12.     char *name;
  13.     unsigned char age;
  14.     Gender  gender;
  15. } d_human;
  16.  
  17. typedef struct h_human
  18. {
  19.     d_human personal_data;
  20.     d_human *partner;
  21. }h_human;
  22.  
  23. int main(int argc, char** argv)
  24. {  
  25.     int i;
  26.     FILE* fdata = fopen("data.txt", "r");
  27.    
  28.     h_human record[4];
  29.     h_human record_2[2];
  30.  
  31.     for (i = 0; i < 4; i++)
  32.     {
  33.         record[i].personal_data.name = (char*)malloc(sizeof(char) * 30);
  34.     }
  35.         if ((fdata = fopen("data.txt", "r")) == NULL)
  36.         {
  37.             printf("Error ");
  38.             exit(1);
  39.         }
  40.  
  41.         for (i = 0; i < 4; i++)
  42.     {
  43.         printf("Information about the citizen:\n");
  44.          fscanf(fdata, "%s | %d | %d\n", record[i].personal_data.name, &record[i].personal_data.age, &record[i].personal_data.gender);
  45.         printf("%s\t%d\t%d\n", record[i].personal_data.name, record[i].personal_data.age, record[i].personal_data.gender);
  46.     }
  47.  
  48.     fclose(fdata);
  49.  
  50.        if (strcmp(argv[1], "male" ) == 0)
  51.        {
  52.         fdata = fopen("male.bin", "wb");
  53.  
  54.             for (i = 0; i < 4; i++)
  55.             {
  56.                 if (record[i].personal_data.gender == 1)
  57.                 {
  58.                     fwrite(&record[i].personal_data, sizeof(h_human), 1, fdata);
  59.                 }
  60.             }
  61.         printf("\nMale citizens:\n");
  62.  
  63.         fclose(fdata);
  64.  
  65.         fdata = fopen("male.bin", "rb");
  66.         for (i = 0; i < 2; i++)
  67.         {
  68.             fread(&record_2[i].personal_data, sizeof(h_human), 1, fdata);
  69.             printf("%s| %d | %d\n", record_2[i].personal_data.name, record_2[i].personal_data.age, record_2[i].personal_data.gender);
  70.         }
  71.         fclose(fdata);
  72.        }
  73.  
  74.            else if (strcmp(argv[1], "female") == 0)
  75.            {
  76.                fdata = fopen("female.bin", "wb");
  77.  
  78.                for (i = 0; i < 4; i++)
  79.                {
  80.                    if (record[i].personal_data.gender == 0)
  81.                    {
  82.                        fwrite(&record[i].personal_data, sizeof(h_human), 1, fdata);
  83.                    }
  84.                }
  85.                printf("\nFemale citizens\n");
  86.  
  87.                fclose(fdata);
  88.  
  89.                fdata = fopen("female.bin", "rb");
  90.  
  91.                for (i = 0; i < 2; i++)
  92.                {
  93.                    fread(&record_2[i].personal_data, sizeof(h_human), 1, fdata);
  94.                    printf("%s| %d | %d\n", record_2[i].personal_data.name, record_2[i].personal_data.age, record_2[i].personal_data.gender);
  95.                }
  96.                fclose(fdata);
  97.            }
  98.     fclose(fdata);
  99.  
  100.     for (i = 0; i < 4; i++)
  101.     {
  102.         free(record[i].personal_data.name);
  103.     }
  104.  
  105.     return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement