Completo
unknown
plain_text
3 years ago
4.4 kB
11
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...