gpt4 book ai didi

c - 从文件中获取特定客户的最新订单

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:31 24 4
gpt4 key购买 nike

基本上,我正在尝试开发一个客户订单系统。我写了一个方法,让系统获取特定客户的最新订单。要求用户输入客户 ID 号以获得相应的订单。此功能无法正常工作,因为它得到的是第一个订单而不是最后一个订单。我在我的方法中使用了 fseek,但它仍然无法正常工作。

void ViewLatestOrder()
{
order o;
char Customerid[10];


ofp=fopen("orders.dat","rb");

printf("\nEnter the Customer ID: \n");
scanf("%s",&Customerid);

rewind(ofp);
fseek(ofp, -sizeof(order), SEEK_END);

while(fread(&o,sizeof(o),1,ofp)==1 && !feof(ofp))
{
if(strcmp(Customerid,o.CustomerID)== 0)
{

printf("\n========================================================\n\n");
printf("\t\t Order Details of %s\n\n",o.CustomerID);
printf("========================================================\n\n");

printf("Product Name: %s\n",o.ProductName);
printf("Product Quantities: %d\n",o.ProductQuantities);
printf("Total Order Price: %.2f\n",o.TotalOrderPrice);


printf("========================================================\n\n");
}
else
{
fseek(ofp, -2*sizeof(order), SEEK_CUR);
}
}


OrdersSubMenu();
fclose(ofp);

}

最佳答案

您的代码是正确的,您只是未能在第一次成功找到时跳出 while 循环。然后它继续查找并打印所有以前的订单。

if(strcmp(Customerid,o.CustomerID)== 0)
{
... // printing
break;
}

关于c - 从文件中获取特定客户的最新订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14234202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com