Witam,
Piszę prosty program, żeby sobie przećwiczyć funkcje fread i fwrite. No i napotkałem problem.
Program imituje bazę danych (na strukturach). Dodaje, usuwa itp. No i jest zapis z i do pliku.
I tu pojawia się problem. 2 dni nad tym siędze i już mnie nerwy zżerają.
Struktura:
struct entry{
string sName;
string sSurname;
unsigned int uiAge;
bool bEmpty;
};
Wywołanie funkcji zapisu i odczytu :
vSaveDb(person, sPlik);
vOpenDb(person, sPlik);
Person to tablica struktur struct entry person[10]
Ciała funkcji:
Zapis:
void vSaveDb(entry *e, char *sPlik){
FILE *plik;
plik=fopen(sPlik,"w");
if(plik!=NULL){
size_t save=fwrite(e,sizeof(e),MAX_ENTRIES,plik);
cout<<save<<endl;
fclose(plik);
}
else cout<<"Error open file"<<endl;
}
Odczyt (ma być zapisane do struktury person, której wskaźnik przekazuje do funkcji):
void vOpenDb(entry *e, char *sPlik){
FILE *pFile = fopen(sPlik, "rb");
if(pFile)
{
size_t result;
cout<<result<<endl;
result = fread (&e,sizeof(e),MAX_ENTRIES,pFile);
fclose(pFile);
}
else cout<<"Error open file"<<endl;
}
Wiem, że coś robię źle z samą strukturą ale nie mogę znaleźć błędu.