I have simplified my programme to these 3 functions:
Code:
/* STEP ONE */
int loadData(structure inventory[],int* arrayL)
{
int i=0;
char buff1[MAXchar];
char buff2[MAXchar];
FILE *dataFile;
dataFile = open_file(dataFileName ,"r");
while(!feof(dataFile)){
fgets(inventory[i].name, MAXchar,dataFile);
fgets( buff1, MAXchar, dataFile );
fgets( buff2, MAXchar, dataFile );
fgets(inventory[i].expiry, MAXchar,dataFile);
fgets(inventory[i].type, MAXchar,dataFile);
fgets(inventory[i].detail, MAXchar,dataFile);
sscanf( buff1, "%f", &inventory[i].price );
sscanf( buff2, "%d", &inventory[i].noItems );
i++;
}
fflush(stdin);
fclose(dataFile);
*arrayL=i;
}
/* STEP TWO*/
void addItems(structure inventory[],int *arrayL)
{
int i=*arrayL;
char buff1[MAXchar];
char buff2[MAXchar];
Stemplate();
printf("Please enter inventory items\n");
printf("Enter Item name: ");
gets(inventory[i].name);
printf("Enter Item price: ");
gets(buff1);
inventory[i].price=atoi(buff1);
printf("Enter number of Items: ");
gets(buff2);
inventory[i].noItems=atoi(buff2);
printf("Enter expiry (if applicable): ");
gets(inventory[i].expiry);
printf("Enter type of Item: ");
gets(inventory[i].type);
printf("Enter other Details: ");
gets(inventory[i].detail);
arrayL++;
getchar();
}
/* STEP THREE*/
void saveData(structure inventory[],int arrayL)
{
int i;
int z=arrayL;
FILE* dataFile;
dataFile = open_file(dataFileName ,"w");
for(i=0;i<(z-1);i++){
fputs(inventory[i].name,dataFile);
fprintf(dataFile,"%.2f\n",inventory[i].price);
fprintf(dataFile,"%d\n",inventory[i].noItems);
fputs(inventory[i].expiry,dataFile);
fputs(inventory[i].type,dataFile);
fputs(inventory[i].detail,dataFile);
}
fclose(dataFile);
}
This doesnt seem to work.....