我有一個名爲AddOrder()的方法,用戶可以在其中創建訂單。當系統要求用戶輸入產品名稱時,我想編寫一個從products.dat文件獲取特定記錄的函數。同樣當用戶被要求輸入產品數量時,我希望系統能夠檢測到特定產品的產品數量是否超過該產品的庫存(也存儲在products.dat中)的可用數量。從C文件中獲取特定記錄的特定數據C
我試過這個功能,但是當我從AddOrder()調用它時,它不能正常工作。這是我的代碼。
void addOrder()
{
order o1;
ofp=fopen("orders.dat","ab");
printf("\n========================================================\n\n");
printf("\t\t Adding an Order\n\n");
printf("========================================================\n\n");
do
{
printf("Enter CustomerID: \n");
scanf("%s",&o1.CustomerID);
}while(!findCustomer(o1.CustomerID));
printf("Enter Product Name: \n");
scanf("%s", o1.ProductName);
int QuantityInStock = getQuantity(o1.ProductName);
printf("%d", &QuantityInStock);
int PQuantity = 0;
printf("Enter Product Quantities: \n");
scanf("%d", &PQuantity);
if(PQuantity > QuantityInStock)
{
printf("You have axeceeded available stock!\n");
}
else
{
printf("Product Quantity is available\n");
}
fwrite(&o1,sizeof(o1),1,ofp);
printf("Order record was added to the system!\n");
fclose(ofp);
}
int getQuantity(const char* ProductName)
{
FILE *pfp;
product p;
int countstock=0;
pfp=fopen("products.dat","rb");
while(1)
{
fread(&p,sizeof(p),1,pfp);
if(feof(pfp))
{
break;
}
if(strcmp(ProductName,p.ProductName)==0)
{
countstock +=&p.QuantityInStock;
}
}
fclose(pfp);
return countstock;
}
你得到什麼錯誤? –