文件的读取?麻烦大神帮我解决一下!

刚开始我用链表保存数据(信息),然后将数据存入文件中......当我将数据从文件中读取出来查询时,想用链表来查询到其中一个信?
请问怎么解决??

你使用链表存储信息保存在文件中,然后在从文件中读取信息,读取多少信息就要创建多少节点的链表,既然都读取到链表中去了,那么查询某一个信息不就是遍历吗?
例子差不多:

void readFile()
{
    FILE* fp;
    int i;
    if ((fp = fopen("data.dat", "rb")) == NULL)
    {
        printf("cannot open file! \n");
        return;
    }
    for (i = 0; i < 110 * 110; i++)
    {
        if (i <= 26)
        {
            if (fread(&q[i].name, sizeof(q[i].name), 1, fp) != 1)
            {
                printf("file read error! \n");
            }
            if (fread(&q[i].jieshao, sizeof(q[i].jieshao), 1, fp) != 1)
            {
                printf("file read error! \n");
            }
            printf("%s\t%s", q[i].name, q[i].jieshao);
        }
        else
        {
            if (fread(&map[i / 110][i % 110], sizeof(map[i / 110][1 % 110]), 1, fp) != 1)
            {
                printf("file read error! \n");
            }
            printf("\t%d", map[i / 110][i % 110]);
        }

    }
    system("pause");
    fclose(fp);
}
void writeFile()
{
    FILE* fp;//文件操作指针
    int i;
    fp = fopen("data.dat", "wb");//打开文件路径,wb以只写方式二进制打开
    if (fp == NULL)//如果为空 打开失败
    {
        printf("file write error! \n");
        return;//
    }
    for (i = 0; i < 110 * 110; i++)
    {
        if (i <= 26)
        {
            if (fwrite(&q[i].name, sizeof(q[i].name), 1, fp) != 1)//写入数据 把&q[i].name,写入,写入sizeof(q[i].name)大小,1表示要读写的数据块的块数。fp表示文件指针。
            {
                printf("file write error! \n");
            }
            if (fwrite(&q[i].jieshao, sizeof(q[i].jieshao), 1, fp) != 1)
            {
                printf("file write error! \n");
            }
        }
        else 
        {
            if (fwrite(&map[i / 110][i % 110], sizeof(map[i / 110][i % 110]), 1, fp) != 1)
            {
                printf("file write error! \n");
            }
        }
    }
    fclose(fp);
    printf("\n写入成功!\n");
}

https://blog.csdn.net/qq_25366523/article/details/50964226