Я пытаюсь найти, существует ли запись в двоичном файле, ища имя.
Кажется, я не делаю что-то правильно с момента возвращения моего «если», независимо от того, какой вход он всегда находит, когда он не существует.
Отладчик утверждает: «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);
}
Произошла ли ошибка, если вы перепишите ее вот так? 'if (strcmp (pl.nome, nam) == 0)'? – sarnold
Нет, и отладчик все еще утверждает то же самое – CMCB