Эй! В настоящее время я готовлюсь к предстоящему поступлению в колледж, но сталкиваюсь с некоторыми трудностями.
Мне нужно написать приложение базы данных C, которое будет хранить детали книги в файле и позволять мне вызывать их и удалять. У меня возникли некоторые проблемы с чтением файла, записи просто не будут отображаться, когда я перечислю их все (Вариант 3).
Я посмотрел файл базы данных, поэтому я думаю, он был записан правильно.
Вот основная функция моего кода:
#include<stdio.h>
#include <stdlib.h>
// Global Varables
FILE *fp, *ft;
// Structs
typedef struct Books
{
int id;
char title[25];
char forename[25];
char surname[25];
char isbn[13];
}Books;
void displayMenu()
{
printf("Options");
}
void runapp()
{
int option;
char isbn[20];
char deleteOrNot[2];
Books book;
fp = fopen("database.dat", "a+");
if (fp == NULL)
{
printf("Failed to open file.");
}
long int booksize = sizeof(book);
do
{
displayMenu();
printf("Enter menu option: ");
scanf("%i", &option);
switch(option)
{
// =================================================================
// -------- OPTION 1: Add a new book
// =================================================================
case 1:
fseek(fp, 0, SEEK_END);
printf("Please enter the books title: ");
scanf("%s", book.title);
printf("Please enter the authors first name: ");
scanf("%s", book.forename);
printf("Please enter the authors surname: ");
scanf("%s", book.surname);
printf("Please enter the ISBN number: ");
scanf("%s", book.isbn);
fwrite(&book, booksize, 1, fp);
fflush(stdin);
break;
// =================================================================
// -------- OPTION 2: Search and delete
// =================================================================
case 2:
// Search and delete
break;
// =================================================================
// -------- OPTION 3: List all books
// =================================================================
case 3:
rewind(fp);
while(fread(&book, booksize,1, fp))
printf("%s", book.title);
printf("\n\nPress any key to return to menu.");
getch();
break;
// =================================================================
// -------- OPTION 4: Exit the application
// =================================================================
case 4:
fclose(fp);
exit(0);
break;
}
if (system("cls")) system("clear");
}while(option != "\n");
}
int main()
{
runapp();
return 0;
}
Любая помощь в решении этой проблемы была бы великолепна!
Также не стесняйтесь дать мне несколько советов по моему коду.