Strona 1 z 1

Wczytywanie danych z pliku binarnego

Napisane: niedziela, 23 października 2011, 20:42
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.

Re: Wczytywanie danych z pliku binarnego

Napisane: niedziela, 23 października 2011, 21:20
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 :)