Przechowywanie danych binarnych w programie

0

Witam serdecznie wszystkich forumowiczów!

Jestem początkującym programistą i napotkałem na pewien problem, z którym nie mogę sobie sam poradzić. Chodzi o to, że potrzebuje w moim programie przechowywać surowe dane binarne. Sęk w tym, że rozmiar tych danych jest nie znana w czasie kompilacji. Na początku pomyślałem, aby tworzyć tymczasowy plik binarny i zapisywać tam odpowiednie dane, a następnie po zakończeniu operacji wczytać cały plik do jakiegoś bufforu, lecz od razu ten pomysł wydał mi się mało optymalny więc zrezygnowałem z niego.

W internecie wielu ludzi poleca przechowywanie danych binarnych w postaci:

std::vector<BYTE>

Vector rozwiązałby mój problem z nie znanym rozmiarem tych danych binarnych. Lecz jeżeli w łatwy sposób mogę do takiego vectora zapisać dane typu BYTE:

 
std::vector<BYTE> binaryData;
BYTE buffer[n];
GetRawData(buffer, n);
for(int i = 0; i < n; i++) binaryData.push_back(buffer[i]);

To zastanawia mnie jak do takiego vektora zapisać typu WORD czy DWORD, które również będę musiał zapisać. Jak wiadomo te typy są 'cięższe' od typu BYTE i funkcja push_back() już tego nie załatwi. Czy idzie jakoś zapisać dane binarne (nie koniecznie typu BYTE) w takim wektorze ?

Pozdrawiam.

1
ostringstream ss;
ss.write((char*)&var_byte,sizeof(byte));
ss.write((char*)&var_int,sizeof(int));
0

Dzięki Ci bardzo :) rozumiem że w drugim programie, który będzie odbierał te dane wystarczy, że użyje istringstream i metody read()?

poprawienie znaczników + usunięcie cytowania całego poprzedniego posta - fp

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