2012-06-10 3 views
0

Я пытаюсь найти, существует ли запись в двоичном файле, ища имя.
Кажется, я не делаю что-то правильно с момента возвращения моего «если», независимо от того, какой вход он всегда находит, когда он не существует.
Отладчик утверждает: «if = Синтаксическая ошибка в выражении», я не вижу его.Поиск записи в двоичном файле

#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); 

} 
+0

Произошла ли ошибка, если вы перепишите ее вот так? 'if (strcmp (pl.nome, nam) == 0)'? – sarnold

+0

Нет, и отладчик все еще утверждает то же самое – CMCB

ответ

1

Глупый меня ..........

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

->; эта маленькая деталь ....

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

Это не ошибка _syntax. Это совершенно законно, если нечетно .. – sarnold

+0

Отладчик ftw ... – CMCB

Смежные вопросы