CMCB
CMCB

Reputation: 71

Search for a record on a binary file

I'm trying to find if a record exists on a binary file by searching for a name.
Seems I'm not doing something right since the return of my "if" no matter the input it's always found when it doesn't exist.
The debugger states "if = A syntax error in expression", I'm not seeing it.

#ifndef DATA_PLAYER_H_INCLUDED
#define DATA_PLAYER_H_INCLUDED
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Player
{
    char nome[50];
    int pontos;
}Players;

void ViewPont();
void SearchPont();
#endif // DATA_PLAYER_H_INCLUDED

--

#include "DATA_PLAYER.h"

void ViewPont()
{
    Players pl;
    FILE *fp;
    int i, pontos;

    fp = fopen("Pontuacoes.dat", "rb+");

        while((fread(&pl, sizeof(Players),1, fp)) != 0 )
    {
        printf("%s %d\n", pl.nome, pl.pontos);
    }

    fclose(fp);
}

void SearchPont()
{
    char nam[50];
    char ch;
    Players pl;
    FILE * fp;

    fp = fopen("Pontuacoes.dat","rb+");

    printf("\n nome das pont\n");
    fflush(stdout);
    scanf("%s", nam);

    printf("%s", nam);

    while((fread(&pl, sizeof(Players),1, fp)) != 0)
    {
        if((strcmp(pl.nome, nam))==0);
        {
            printf("\nregisto encontrado\n");
        }

    }
fclose(fp);

}

Upvotes: 0

Views: 3744

Answers (1)

CMCB
CMCB

Reputation: 71

Silly me..........

if(strcmp(pl.nome, nam) ==0);

-> ; that little detail....

if(strcmp(pl.nome, nam) ==0)

Upvotes: 1

Related Questions