Witam! mam problem z napisanie funkcji ktora zapisywalaby dane z mojej bazy danych do pliku binarnego i odczytywala je. Potrafie zapisac do pliku txt ,ale do binarnego niestety nie moge sobie poradzic. Mogłby ktoś dać mi wskazówke jak to zrobic?
oto część kodu;
lista jest zainicjowoana w nastepujacy sposob
#include "stdafx.h"
#include "baza.h"
#include "conio.h"
#include "stdlib.h"
#include <iostream>
#include <fstream>
using namespace std;
void Initialize() //funkcja inicjalizuje listę
{
root=new ANIMAL; //tworzymy pierwszy element listy - root
root->Name[0]=0; //wpisujemy dowolne dane do struktury
root->LatinName[0]=0;
root->Group[0]=0;
root->Legs=0;
root->Environment[0]=0;
root->Next=NULL;//root jest ostatnim elementem listy zatem wskaźnik "Next" ma wartość NULL
current=root;//ustawiamy wskaznik "current" listy na element "root"
}
struct ANIMAL //definicja rekordu
{
char Name[20];
char LatinName[20];
char Group[20];
int Legs;
char Environment[20];
ANIMAL *Next; //adres kolejnego elementu listy
};
static ANIMAL *AddAnimal() //dodaje rekord do listy
{
current=GetLast(); //zwraca adres ostatniego elementu
ANIMAL *nowy=new ANIMAL; //tworzymy nowy wskaznik-element operatorem new
current->Next=nowy;
nowy->Next=NULL; //lepiej zadeklarowac do NULL
return nowy;
}
void ZapiszDane()
{ FILE* plik;
plik = fopen("dane.bin","wb"); // otwieramy plik do zapisu binarnego
if(plik!=NULL)
{
current=root;
while(current->Next!=NULL)
{
current=current->Next;
fwrite(current,sizeof(ANIMAL),1,plik);
}
fclose(plik);
}
else cout<<"Nie mozna odczytac pliku"<<endl;
system("PAUSE");
}
kiedy otworze plik data.bin w notatniku wyglada to tak;
kot ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍfelis ÍÍÍÍÍÍÍÍÍÍÍÍÍÍssak ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ udomowiony ÍÍÍÍÍÍÍÍÍ