Mój plik binarny wygląda następująco.odczytuje 32-bitową liczbę całkowitą z pliku binarnego
00000000: 0000 0803 0000 ea60 0000 001c 0000 001c
00000010: 0000 0000 0000 0000 0000 0000 0000 0000
lewa kolumna to adres.
Ja tylko starałem się czytać 0000 0803
(= 2051) w następujący sposób
ifstream if;
if.open("file");
uint32_t a;
if >> a;
jak oczekiwano ... To nie działa :-(
a
było tylko 0 po wykonaniu.
próbowałem long, int, unsigned int, unsigned long
. wszystko udało
Dlaczego to nie działa i jak mogę osiągnąć cel
Czy sprawdzić, czy plik został otwarty poprawnie? Jaki jest stan strumienia po przeczytaniu? (błąd lub zły stan?) –
pamięta o trybie otwartym - drugi argument do otwarcia (http://en.cppreference.com/w/cpp/io/ios_base/openmode). – Hcorg
Musisz wiedzieć, jaka endianness został użyty podczas zapisywania pliku. Little-endian (na przykład Intel x86): Najmniej znaczący bajt na najniższym adresie, Big-endian (np. W Internecie): Najbardziej znaczący bajt na najniższym adresie. –