我正在尝试开发一个函数,该函数使用 strcmp() 检查输入的产品名称是否已存在于文件中。
这是我的函数,然后当系统要求用户输入产品名称时,我从 void AddProduct() 函数中调用它。问题是该功能不能正常工作,每当用户输入一个新的产品名称时,它一直说它已经存在。
bool ProductUnique(char ProductName)
{
product p;
bool uniqueproduct = true;
char productname[50];
pfp=fopen("products.dat","rb");
while(1)
{
fread(&p,sizeof(p),1,pfp);
if(feof(pfp))
{
break;
}
if(strcmp(productname,p.ProductName)==0)
{
uniqueproduct = false;
}
if(!uniqueproduct)
{
printf("Product Name aleady exists!");
}
}
return uniqueproduct;
fclose(pfp);
}
这是我的 void AddProduct() 函数的一部分
void addProduct()
{
product p1;
pfp=fopen("products.dat","ab");
printf("\n========================================================\n\n");
printf("\t\t Adding a Product\n\n");
printf("========================================================\n\n");
char ProductName[100];
do
{
printf("Enter Product Name: \n");
scanf("%s",ProductUnique(p1.ProductName);
}while(!ProductUnique(p1.ProductName));