Im trying to write a program to read an inventory file and create an inventory report. The report is to contain the part number, price, quantity on hand, reorder point, minimum order, and order amount. The order amount is calculated when the quantity on hand falls below the reorder point. It is calculated as the sum of the reorder point and the minimum order minus the quantity on hand.
Whenever I run the program though, all I get is
"Error reading data
End of Report"
What am I doing wrong??? Help!
"
#include <stdio.h>
#include <ctype.h>
int getData (FILE *spInData,
int *partNo, int *price,
int *quant, int *reorder, int *minimum);
void calcAmt (int *orderAmt, int quant, int minimum, int reorder);
int writeReport (FILE *spReport, int partNo, int price, int quant, int reorder,
int minimum, int orderAmt);
int main (void)
{
int partNo;
int price;
int quant;
int reorder;
int minimum;
int orderAmt;
FILE* spInData;
FILE* spReport;
if (!(spInData = fopen("INVENTORYDATA.TXT", "r")))
{
printf("Error opening INVENTORYDATA.TXT for reading");
return 100;
}
if (!(spReport = fopen("INVENTORYREPORT.TXT", "w")))
{
printf("Error opening inventory report\n");
return 102;
}
while (getData(spInData, &partNo, &price, &quant, &reorder, &minimum))
{
calcAmt (&orderAmt, quant, minimum, reorder);
writeReport (spReport, partNo, price, quant, reorder, minimum, orderAmt);
}
fclose(spInData);
fclose (spReport);
printf("End of Report\n");
return 0;
}
int getData (FILE *spInData,
int *partNo, int *price,
int *quant, int *reorder, int *minimum)
{
int ioResult;
ioResult = fscanf(spInData, "%d%d%d%d%d", partNo,
price, quant, reorder, minimum);
if (ioResult == EOF)
return 0;
else if (ioResult !=5)
{
printf("\aError reading data\n");
return 0;
}
else
return 1;
}
void calcAmt (int *orderAmt, int quant, int minimum, int reorder)
{
int ioResult;
while( ioResult != EOF)
{
if(quant<reorder)
{
*orderAmt = (reorder+minimum)/quant;
return;
}
else
{
return;
}
}
}
int writeReport (FILE *spReport, int partNo, int price, int quant, int reorder,
int minimum, int orderAmt)
{
printf("Part No. Price Quantity Reorder Point Minimum Order\n");
fprintf(spReport, "%04d %d %d %d %d %d\n", partNo, price, quant, reorder, minimum, orderAmt);
return 0;
}