Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdlib.h>
- #include<stdio.h>
- typedef enum Gender {
- Female = 0,
- Male = 1
- } Gender;
- typedef struct data_human {
- char *name;
- unsigned char age;
- Gender gender;
- } d_human;
- typedef struct h_human
- {
- d_human personal_data;
- d_human *partner;
- }h_human;
- int main(int argc, char** argv)
- {
- int i;
- FILE* fdata = fopen("data.txt", "r");
- h_human record[4];
- h_human record_2[2];
- for (i = 0; i < 4; i++)
- {
- record[i].personal_data.name = (char*)malloc(sizeof(char) * 30);
- }
- if ((fdata = fopen("data.txt", "r")) == NULL)
- {
- printf("Error ");
- exit(1);
- }
- for (i = 0; i < 4; i++)
- {
- printf("Information about the citizen:\n");
- fscanf(fdata, "%s | %d | %d\n", record[i].personal_data.name, &record[i].personal_data.age, &record[i].personal_data.gender);
- printf("%s\t%d\t%d\n", record[i].personal_data.name, record[i].personal_data.age, record[i].personal_data.gender);
- }
- fclose(fdata);
- if (strcmp(argv[1], "male" ) == 0)
- {
- fdata = fopen("male.bin", "wb");
- for (i = 0; i < 4; i++)
- {
- if (record[i].personal_data.gender == 1)
- {
- fwrite(&record[i].personal_data, sizeof(h_human), 1, fdata);
- }
- }
- printf("\nMale citizens:\n");
- fclose(fdata);
- fdata = fopen("male.bin", "rb");
- for (i = 0; i < 2; i++)
- {
- fread(&record_2[i].personal_data, sizeof(h_human), 1, fdata);
- printf("%s| %d | %d\n", record_2[i].personal_data.name, record_2[i].personal_data.age, record_2[i].personal_data.gender);
- }
- fclose(fdata);
- }
- else if (strcmp(argv[1], "female") == 0)
- {
- fdata = fopen("female.bin", "wb");
- for (i = 0; i < 4; i++)
- {
- if (record[i].personal_data.gender == 0)
- {
- fwrite(&record[i].personal_data, sizeof(h_human), 1, fdata);
- }
- }
- printf("\nFemale citizens\n");
- fclose(fdata);
- fdata = fopen("female.bin", "rb");
- for (i = 0; i < 2; i++)
- {
- fread(&record_2[i].personal_data, sizeof(h_human), 1, fdata);
- printf("%s| %d | %d\n", record_2[i].personal_data.name, record_2[i].personal_data.age, record_2[i].personal_data.gender);
- }
- fclose(fdata);
- }
- fclose(fdata);
- for (i = 0; i < 4; i++)
- {
- free(record[i].personal_data.name);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement