首页 > 解决方案 > 使用c将结构数据数组追加和删除到文件中

问题描述

我正在尝试使用结构数组执行一些操作,例如添加、删除、追加数据到 C 语言的文件中。这是我的结构。

struct S_info
{
    char title[50];
    char sName[50];
    int rMm;
    int rDd;
    int rYy;
    int rating;
    bool deleteSong;
};

而且我能够使用结构将数据添加到文件中。这是添加数据的代码。

for (int i = 0; i < n; i++)
{
    printf("Title: ");
    scanf("%s", &title);
    printf("\nName of the Song: ");
     .....................

    strcpy(s[i].title, title);
    strcpy(s[i].sName, sName);

    s[i].rMm = rMm;
    ...........

    fwrite(&s[i], sizeof(struct S_info), 1, outfile);
}

但问题是,每当我添加新数据时,以前的数据都会从文件中删除。因此,我需要创建一个函数,该函数将使用结构数组将新数据附加到文件中。我还想创建另一个将删除的函数。

为了删除数据,我尝试了一种方法,我在结构中创建了一个 bool 变量来帮助我删除数据。但我不喜欢代码。我在互联网上搜索使用结构附加数据,但我没有找到任何好的解决方案,删除数据也发生了同样的事情。我需要的是使用结构数组将新数据追加和删除到文件中。

标签: arrayscfilefile-iostructure

解决方案


您可以在打开输出文件时查看,使用“打开”功能可以使用很多有用的选项,(您可以在“打开”手册中找到它);O_APPEND 是这些选项之一,它允许您在文件中已经存在的数据之后写入文件,所以我认为这就是您想要的


推荐阅读