My linked list final seems to have been going well except accessing a file. The syntax looks correct to me, so I was hoping that maybe someone could spot something that I missed. Help is very appreciated. Here are the functions that
access the file.
Code:
void MainMenu(char *data)
{
int choice;
LINK_LIST * databases;
DBASE dbase;
databases = ReadMe("C:\\data.txt");
do
{
DisplayMenu();
fflush(stdin);
choice = getchar();
switch(choice)
{
case ADD : GetData(&dbase);
databases = Add(databases, dbase);
break;
case MODIFY : databases = Modify(databases);
break;
case DELETE : databases = Delete(databases);
break;
case SEARCH : Search(databases);
break;
case EXIT : break;
default : MenuError();
};
}while(choice != EXIT);
WriteMe("C:\\data.txt", databases);
}
void WriteMe(char *data, LINK_LIST * databases)
{
int written = 0;
DBASE dbase;
FILE *fp;
fp = fopen("C:\\data.txt", "wt");
while(databases)
{
dbase = databases->dbase;
fwrite(&dbase, sizeof(DBASE), 1, fp);
written++;
databases = databases->next;
}
fclose(fp);
printf("\n%d record(s) written\n", written);
}
LINK_LIST * ReadMe(char *data)
{
int read = 0;
LINK_LIST * databases;
DBASE dbase;
FILE *fp;
databases = NULL;
if((fp = fopen("C:\\data.txt", "rt")) != NULL)
{
while(fread(&dbase, sizeof(DBASE), 1, fp) == SUCCESS)
{
read++;
databases = Add(databases, dbase);
}
}
fclose(fp);
printf("\n%d record(s) read\n", read);
return(databases);
}