I'm making a program called "Book manager", all in need now is to create functions to save and load Books(structs) from file. I'm wondering how to read them. Here's my struct definition:
typedef
struct book {
char * title;
char * authorName;
char * authorSurname;
int releaseYear;
char * genre;
int flags[10];
} Book;
I've made a function that allow me to read one book from file, but it's awful and i dont get it how to read a set of Books. I want to read it to my array.
Book allBooks[LIBRARY_SIZE];
Sample file that i want to read from looks:
Christine,Stephen,King,1980,Horror
Harry Potter,J.K,Rowling,2000,Fantasy
Any ideas?
Edit: This is what i tried to do to read simple Book(at the beginning profesor said it would be enough) Dont commit suicide while reading this.
void loadBook(Book * book, FILE * plik){
char jakasTablica[50];
char jakasTablica2[50];
char jakasTablica3[50];
char jakasTablica4[50];
int i = 0;
char znak;
fscanf(plik,"%c",&znak);
while(znak != ','){
jakasTablica[i] = znak;
i += 1;
fscanf(plik,"%c",&znak);
}
jakasTablica[i] = '\0';
strcpy(book->title, jakasTablica);
i = 0;
fscanf(plik,"%c",&znak);
while(znak != ','){
jakasTablica2[i] = znak;
i += 1;
fscanf(plik,"%c",&znak);
}
jakasTablica2[i] = '\0';
strcpy(book->authorName, jakasTablica2);
i = 0;
fscanf(plik,"%c",&znak);
while(znak != ','){
jakasTablica3[i] = znak;
i += 1;
fscanf(plik,"%c",&znak);
}
jakasTablica3[i] = '\0';
strcpy(book->authorSurname, jakasTablica3);
i = 0;
fscanf(plik,"%c",&znak);
while(znak != ','){
jakasTablica4[i] = znak;
i += 1;
fscanf(plik,"%c",&znak);
}
jakasTablica4[i] = '\0';
strcpy(book->genre, jakasTablica4);
i = 0;
int zmienna = 0;
fscanf(plik, "%d", &zmienna);
book->releaseYear = zmienna;
}