我已经使用文件创建了一个数据库。如果文件中已经存在记录,则在文件中插入记录时,它将最终被复制。但我想避免这种情况。如何设计一种机制来避免重复记录(即如何检查记录是否已经在文件中以及如何阻止用户在文件中再次输入相同的数据)?
/* vehicle record program */
#include <stdio.h>
#include <string.h>
typedef struct vehicle
{
char name[100];
int lice_no;
int vehicle_type;
char cmpny_name[100];
int menu_year;
}record;
int main(void)
{
int i , choice;
FILE *fp1,*fp2;
char oname[100];
record det;
int recsize;
char c;
fp1 = fopen("record.dat" , "r+");
if(fp1 == NULL)
{
fp1 = fopen("record.dat" , "w+");
if(fp1 == NULL)
{
printf("error in opening file : \n");
return -1;
}
}
recsize = sizeof(det);
fseek(fp1 , 0 ,SEEK_END);
printf("Enter owner Name : ");
scanf("%[^\n]" , det.name);
printf("Enter licence number : ");
scanf("%d" , &det.lice_no);
printf("Enter the vehicle type : ");
scanf("%d" , &det.vehicle_type);
scanf("%c" , &c);
printf("Enter company name : ");
scanf("%[^\n]" , det.cmpny_name);
printf("Enter menufecture year : ");
scanf("%d" , &det.menu_year);
fwrite(&det,recsize,1,fp1);
}