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));