Completo
unknown
plain_text
2 years ago
4.4 kB
9
Indexable
#include <stdio.h> #include <string.h> #define NAME_SIZE 50 #define NUM_DISCIPLINES 3 typedef struct character_ { char name[NAME_SIZE]; char clan_name[NAME_SIZE]; char sire_name[NAME_SIZE]; char disciplines[NUM_DISCIPLINES][NAME_SIZE]; char bane[NAME_SIZE]; int generation; } Character; typedef struct clan_ { char name[NAME_SIZE]; char disciplines[NUM_DISCIPLINES][NAME_SIZE]; char faction[NAME_SIZE]; char bane[NAME_SIZE]; } Clan; typedef struct sire_ { char name[NAME_SIZE]; char clan_name[NAME_SIZE]; int generation; } Sire; void createCharacter(char playername[NAME_SIZE], char sirename[NAME_SIZE]) { FILE* userfile; FILE* clanes; FILE* sires; int flag = 0; Sire s; Character c; Clan cl; strcpy(c.name, playername); char name[NAME_SIZE]; strcpy ( name, playername ); strcat ( name, ".bin" ); sires = fopen("sires.bin", "rb"); if(NULL == sires) { } else { flag = 0; fread(&s, sizeof(Sire), 1, sires); while(!feof(sires) && !flag) { if(strcmp(sirename, s.name) == 0) { strcpy(c.sire_name, sirename); strcpy(c.clan_name, s.clan_name); c.generation = s.generation+1; flag = 1; } fread(&s, sizeof(Sire), 1, sires); } fclose(sires); } clanes = fopen("clans.bin", "rb"); if(NULL == clanes) { } else { flag = 0; fread(&cl, sizeof(Clan), 1, clanes); while(!feof(clanes) && !flag) { if(strcmp(c.clan_name, cl.name) == 0) { strcpy(c.disciplines[0], cl.disciplines[0]); strcpy(c.disciplines[1], cl.disciplines[1]); strcpy(c.disciplines[2], cl.disciplines[2]); strcpy(c.bane, cl.bane); flag = 1; } fread(&cl, sizeof(Clan), 1, clanes); } fclose(clanes); } userfile = fopen(name, "wb"); if(NULL == userfile) { //bad } else { //good fwrite(&c, sizeof(Character), 1, userfile); fclose(userfile); } } int main() { char pj_name[NAME_SIZE]; char sire[NAME_SIZE]; printf("Please, give your character's name: "); fgets(pj_name, NAME_SIZE, stdin); pj_name[strlen(pj_name)-1] = '\0'; printf("Please, give your sire's name: "); fgets(sire, NAME_SIZE, stdin); sire[strlen(sire)-1] = '\0'; // FILE* fclans; // FILE* fsires; // Clan c; // Sire s; // fclans = fopen("clans.bin", "wb"); // for(int i = 0; i < 3; i++) { // printf("Clan name: "); // scanf("%s", c.name); // printf("Discipline 1: "); // scanf("%s", c.disciplines[0]); // printf("Discipline 2: "); // scanf("%s", c.disciplines[1]); // printf("Discipline 3: "); // scanf("%s", c.disciplines[2]); // printf("Faction: "); // scanf("%s", c.faction); // printf("Bane: "); // scanf("%s", c.bane); // fwrite(&c, sizeof(Clan), 1, fclans); // } // fclose(fclans); // fsires = fopen("sire.bin", "wb"); // for(int i = 0; i < 3; i++) { // printf("Sire name: "); // scanf("%s", s.name); // printf("Clan name: "); // scanf("%s", s.clan_name); // printf("Generation: "); // scanf("%d", &s.generation); // fwrite(&s, sizeof(Sire), 1, fsires); // } // fclose(fsires); createCharacter(pj_name, sire); // PROCEDURE TO CREATE FILE *f; Character c; f = fopen("UPA.bin", "rb"); if(NULL == f) { // } else { fread(&c, sizeof(Character), 1, f); printf("Name: %s\n", c.name); printf("Clan: %s\n", c.clan_name); printf("Sire: %s\n", c.sire_name); printf("Discipline 1: %s\n", c.disciplines[0]); printf("Discipline 2: %s\n", c.disciplines[1]); printf("Discipline 3: %s\n", c.disciplines[2]); printf("Bane: %s\n", c.bane); printf("Generation: %d\n", c.generation); fclose(f); } return (0); }
Editor is loading...