Я делаю программу под названием «Менеджер книг», теперь все, что нужно, - это создание функций для сохранения и загрузки книг (структур) из файла. Мне интересно, как их читать. Вот мое определение структуры:Как читать структуры из файла в c?
typedef
struct book {
char * title;
char * authorName;
char * authorSurname;
int releaseYear;
char * genre;
int flags[10];
} Book;
Я сделал функцию, которая позволяет мне читать одну книгу из файла, но это ужасно, и я не понимаю, как читать множество книг. Я хочу прочитать его в своем массиве.
Book allBooks[LIBRARY_SIZE];
Sample-файл, который я хочу прочитать от внешности:
Christine,Stephen,King,1980,Horror
Harry Potter,J.K,Rowling,2000,Fantasy
Любые идеи?
Редактировать: Это то, что я пытался сделать, чтобы читать простую книгу (в начале профессор сказал, что этого будет достаточно) Не совершайте самоубийство, читая это.
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;
}
Почему бы вам не показать, что вы попробовали? – Stargateur
Пожалуйста, разместите свой код, который вы используете, чтобы прочитать одну книгу из файла. –
Вы уже разработали алгоритм? Если да, объясните это и сообщите нам, где вы столкнулись с проблемой его реализации. Если нет, покажите нам, что у вас есть, и объясните, где вы застряли. –