Wczytywanie danych z pliku binarnego

Problemy i ich rozwiązania w C++.
Malutki
Bywalec
Bywalec
Posty: 46
Dołączył(a): czwartek, 7 sierpnia 2008, 10:46

Wczytywanie danych z pliku binarnego

Post przez Malutki »

Cześć mam kolejny problem nad którym siedzę i nie mogę zaczaić jak z pliku binarnego wczytywać określoną liczbę bajtów.
Stworzyłem sobie strukturę w której mam określone pola :

Code: Zaznacz cały

struct paluch
{
   int liczba_uzytkownikow;
   int dane;//27 -ilosc bajtow;
   int id_pracownika //ilosc bajtow 4;
   int dlugoschasla//ilosc bajtow 2;
   int numer_karty;//ilosc bajtow 3;
   char nazwa;//ilosc bajtow 10;
   int dzial;//-ilosc bajtow 1;
   int grupa;//-ilosc bajtow 1;
   int   tia;//-ilosc bajtow 1;

};
i teraz chciałbym wczytywać po kolei do każdego pola odpowiednią liczbę bajtów.

Nie znalazłem tego w kursie wiec jak by byś miał czas na odpowiedź to bym był wdzięczny.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Wczytywanie danych z pliku binarnego

Post przez Morfidon »

Hej,

Otwierasz plik z flagą ios::binary, a następnie korzystasz z funkcji:

read ( char* s, streamsize n );

gdzie s to podręczny bufer, gdzie przetrzymujesz w tablicy znakowej to co wczytujesz z pliku dzięki tej funkcji.
gdzie n to ilość bajtów do wczytania do buferu

Dokładniej jest to opisane w 2 lekcji video kursu c++ obsługa plików.

Po wczytaniu możesz wykonać np. operację typu:
atoi

atoi (ascii to integer)

aby przypisać znaki zapisane w buferze do zmiennej typu integer.

Czyli coś w stylu tego:

Code: Zaznacz cały

char buff[32];
float floatNr;
file.read(buff, 4); //pobranie 4 bajtów
floatNr = atof(buff);//konwersja do float
Pozdrawiam :)
Post Reply