Dlaczego nie mogę odczytać danych binarnych fstream za pomocą operatora>>?

Dlaczego nie mogę odczytać danych binarnych fstream za pomocą operatora>>?

Operator ekstrakcji iostream (>>) próbuje interpretować ciągi liczbowe oddzielone białymi znakami, a nie dane binarne. Istnieje wiele różnych sposobów kodowania liczby całkowitej bez znaku w postaci binarnej (np. 32-bitowa reprezentacja uzupełnienia do 2 w kolejności bajtów little-endian). Dlatego musisz używać funkcji odczytu/zapisu, aby operować na takich buforach binarnych.

Jednak nic nie stoi na przeszkodzie, aby zaimplementować własną klasę do serializacji danych binarnych w dowolnej formie przy użyciu operatorów wstawiania i wyodrębniania. Taka klasa prawdopodobnie wykorzystałaby wewnętrznie funkcję odczytu obiektu ifstream. Alternatywnie, biblioteka serializacji boost może już zawierać dokładnie to, co chcesz.