odczyt i zapis z pliku binarnego

0

witam, mam taki problem: chcę przesłać do pliku binarnego ciągi danych nie mające długości bajtowej : np. ciąg 1100.
Jak to zrobić, gdyż z funkcji zapisujących do pliku binarnego znalazłem tylko fwrite a tam są długości w bajtach.
Zależy mi na tym, aby maksymalnie oszczędzić miejsce czyli nie przesłać tego 1100 i uzupełnić zerami.
Będzie to przesyłanie wielu takich ciągów o różnych długościach ( słowa kodowe kodera Huffmana ).

0

Nie zapiszesz ułamka bajtu do pliku

0

Szukaj pod hasłem Bit Manipulation Library

0

Nie znałem wcześniej tej biblioteczki, ale jak patrzę w jej kod źródłowy dla C++ (Bitfile Libraries, http://michael.dipperstein.com/bitlibs/bitfile_cpp-0.8.zip), to i tak do zapisu do pliku wykorzystywana jest metoda std::put(char), więc do pliku zapisywany jest i tak przynajmniej jeden pełny bajt.

1

Poważnie, chcesz zaoszczędzić pół bajta na pliku? Nie dość, że nie da się zapisać pół bajta do pliku to jego wielkość i tak zostanie dopełniona do rozmiaru klastra, zazwyczaj 4096 bajtów.

0

utwórz sobie bufor bajtów, w do którego będziesz "zapisywał" swoje bity a na końcu w normalny i porządny sposób zapisz to do pliku

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