Как использовать fread и fwrite в c - PullRequest
0 голосов
/ 27 мая 2020

В этом фрагменте кода я пытаюсь проверить, есть ли уже строка в списке. Теперь мне нужно использовать функции fread и fwrite для хранения информации в двоичном файле. Я пробовал что-то делать, но, похоже, это меня ни к чему не привело. Это исходный код без fread и fwrite:

if(cont < N)
{
    printf("\n");
    printf("Enter the club name: ");
    gets(club[cont].name);
    for(i = 0; i < cont; i++)
    {
        res_entered = strcmp(club[cont].name, club[i].name);
        if(res_entered == 0)
        {
            do
            {
                printf("This club is present in the list. Enter another one: \n");
                gets(club[cont].name);
                res_entered = strcmp(club[cont].name, club[i].name);
            }while(res_entered == 0);
        }
    }
    cont++;
}
else
{
    printf("Error. Maximum number of clubs \n");
}

Может кто-нибудь помочь мне понять, как использовать fread и fwrite в этом конкретном случае, пожалуйста?

Код с fread и fwrite

if(cont < N)
{
    fp = fopen("list.dat", "ab");
    printf("\n");
    printf("Enter the club name: ");
    gets(club[cont].name);
    strcpy(club[i].name, club[cont].name);
    club[i].points = 0;
    club[i].gscored = 0;
    club[i].gconceded = 0;
    fwrite(&club[i], sizeof(club[i]), 1, fp);
    fclose(fp);
    for(i = 0; i < cont; i++)
    {
        fp = fopen("list.dat", "rb");
        while( (fread(&club[i], sizeof(club[i]), 1, fp)) == 1)
        {
            cont++;
        }
        res_entered = strcmp(club[cont].name, club[i].name);
        if(res_entered == 0)
        {
            do
            {
                printf("This club is present in the list. Enter another one:
                gets(club[cont].name);
                res_entered = strcmp(club[cont].name, club[i].name);
            }while(res_entered == 0);
        }
    }
    fclose(fp);

}
else
{
    printf("Error. Maximum number of clubs \n");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...