Odczyt pliku binarnego C++

0

Cześć, mam już napisany kod który działa (tak mi się wydaję), ale nieco się przy nim pogubiłem.

    char *bufor1 = new char[rozmiar1]();
    char *bufor2 = new char[rozmiar2]();

    streamsize rozmiarbufora = 50;

    while (plik1.good() || plik2.good()){
        plik1.read(bufor1, rozmiarbufora);
        plik2.read(bufor2, rozmiarbufora);
    }

Tak więc, najpierw alokuje odpowiednią ilość miejsca w pamięci [romiar1/rozmiar2 - odpowiada ilosci bajtow pliku, którą wcześniej obliczyła odpowiednia funkcja], później deklaruje ilość bajtów wczytanych do tego bufora(?) i tu wydaje mi się, że rozmiar bufora również powinien być zależny od rozmiaru całego pliku, ale nie jestem pewny. A dalej w pętli wczytuje tylko dane do wcześniej przygotowanego bufora. Czy dobrze to rozumiem i czy jest to poprawna metoda odczytywania pliku binarnego?

0

Zainteresuj się Bracie klasą std::fstream

0

Hm, przecież używa fstream.

Co do pytania to przy plikach binarnych nie ma wielkiej filozofii. Definiujesz sobie format i na jego podstawie wczytujesz/zapisujesz dane. Zamiast gołych tablic użyj std::vector
No i przyda się też nagłówek <cstdint>

0
while (plik1.good() || plik2.good()){

W takich wypadkach and zamiast or.

1 użytkowników online, w tym zalogowanych: 0, gości: 1