如何从文本文件中删除记录



如何从文本文件中删除记录(位于数组结构中(?我的代码可以工作,但它也会删除其他记录。我可以知道我的代码出了什么问题吗?以下是它的样子:

{           
zfp = fopen("note.txt", "wb+");
if (fp == NULL)
{
printf("| File can not be opened.n");
exit(1);
}
for(int k = 0; k < len; k++)
{
if(k == s)
{
strcpy(notes[s].title, "");
notes[s].day = 0;
notes[s].month = 0;
notes[s].year = 0;
}
}
fwrite(&note, sizeof(note), 1, fp);
fclose(fp);
}

顺便说一句,在这部分之前,我有一个代码,要求输入您要删除的事件编号。数组索引从0开始,事件编号从1开始。因此,与该事件编号相关联的数据/记录将是s = eventnumber - 1,以与数组的索引相匹配。

一次写入一条记录,而不是写入整个数组。然后,您可以简单地跳过要删除的那个。

{           
zfp = fopen("note.txt", "wb");
if (fp == NULL)
{
printf("| File can not be opened.n");
exit(1);
}
for(int k = 0; k < len; k++)
{
if(k != s)
{
write(&notes[k], sizeof(notes[k]), 1, fp);
}
}
fclose(fp);
}

相关内容

  • 没有找到相关文章

最新更新