Wczytywanie danych z pliku binarnego

Problemy i ich rozwiązania w C++.

Wczytywanie danych z pliku binarnego

Postprzez Malutki » niedziela, 23 października 2011, 20:42

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 :

Kod: 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.
Malutki
Bywalec
Bywalec
 
Posty: 42
Dołączył(a): czwartek, 7 sierpnia 2008, 10:46

Re: Wczytywanie danych z pliku binarnego

Postprzez Morfidon » niedziela, 23 października 2011, 21:20

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:
Kod: Zaznacz cały
char buff[32];
float floatNr;
file.read(buff, 4); //pobranie 4 bajtów
floatNr = atof(buff);//konwersja do float


Pozdrawiam :)
Morfidon
Administrator
Administrator
 
Posty: 593
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48


Powrót do C++

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość

cron