This is checking if file exists, if not, creating and writing 1 (as in 1st member) at the beginning (or so I thought).
Code:
int x = 1;
FILE* open_F = NULL;
open_F = fopen("myfile.bin", "rb");
if (open_F == NULL) {
open_F = fopen("myfile.bin", "wb");
if (open_F == NULL) {
perror("File error");
}
MEMBER* member = NULL;
member = (MEMBER*)calloc(1, sizeof(MEMBER));
if (member == NULL) {
perror("Struct error");
}
/*entering members in struct*/
rewind(open_F);
fwrite(&x, sizeof(int), 1, open_F);
fwrite(&member, sizeof(MEMBER), 1, open_F);
fclose(open_F);
free(member);
}
This is for reading / printing members:
Code:
FILE* open_F = NULL;
open_F = fopen("myfile.bin", "rb");
if (open_F == NULL) {
perror("File error");
}
else{
int x;
rewind(open_F);
fread(&x, sizeof(int), 1, open_F);
MEMBER* member = NULL;
member = (MEMBER*)calloc(x, sizeof(MEMBER));
if (member == NULL) {
perror("Struct error");
}
fread(&member, sizeof(MEMBER), x, open_F);
for(int i = 0; i < x; i++){
/*printing out members/*
}
fclose(open_F);
free(member);
}