当我调用fopen函数时,它根本不执行任何操作,当我打开项目时,该文件不存在,并且在程序中也不执行任何操作。我要在此功能中执行的操作是从文件中删除某些内容,然后通过忽略要删除的部分并将其余部分复制到“ aux.bin”文件中,然后将其复制到初始文件中来执行此操作
void stergereAngajat (char CNP[14])
{
FILE* fin = fopen("angajati.bin", "rb+");
FILE* fout = fopen("aux.bin", "wb+");
Angajat a;
while (fread(a.CNP, 14 * sizeof(char), 1, fin) == 1)
{
int nr;
fread(&nr, sizeof(int), 1, fin);
a.nume = (char*)malloc(nr * sizeof(char));
fread(a.nume, nr * sizeof(char), 1, fin);
fread(&a.varsta, sizeof(int), 1, fin);
fread(&a.salariu, sizeof(int), 1, fin);
if (strcmp(a.CNP, CNP) != 0)
{
fwrite(a.CNP, 14 * sizeof(char), 1, fout);
fwrite(&nr, sizeof(int), 1, fout);
fwrite(a.nume, nr * sizeof(char), 1, fout);
fwrite(&a.varsta, sizeof(int), 1, fout);
fwrite(&a.salariu, sizeof(int), 1, fout);
}
}
fflush(fout);
char c;
while ((c = fgetc(fout)) != EOF)
fputc(c, fin);
fclose(fin);
fclose(fout);
}