C++ - zapis do pliku

0

Mam gorącą prosbe, czy ktos mogłby mi podpowiedziec, jak zapisac do pliku binarnego dane składowe klasy, wsród kótrych jest wskaźnik do łańcucha.
Korzystając z metody write((char ) &Obiekt, Obiekt) zapisuje wskaźnik , a nie zawartośc stringu.
Konsekwencje takiego podejscia sa oczywiste, wczytując dane z pliku wczytuje adres komorki...
Czy jest w ogole taka mozliwosc zapisania zawartości wyłuskanego wskaznika.
Drugie pytanie, dlaczego argumentem funkcji write i read jest rzutowanie jawne do typu char
.
Wiem tylko tyle, że funkcje write i read oczekują wsk do znaku, stąd to rzutowanie, ale dlaczego?
Za udzielone wskazowki z góry bardzo dziekuje

0

Mam gorącą prosbe, czy ktos mogłby mi podpowiedziec, jak zapisac do pliku binarnego dane składowe klasy, wsród kótrych jest wskaźnik do łańcucha.

najlepiej sobie napisac przeladowany operator wyjscia ( zaprzyjazniony jak chceta dostepa do prywatnej implementacji ;) ) << dla std::ostream& oraz mniemanej klasy a w nim wywolywac przeladowany op<< dla typoff wbudowanych ( lub mejbi rowniesh i skladowych elementoff abstrakcyjnych posiadajacych tak owy ). jak koshystash z metody put to pamietaj o dolaczeniu flagi std::binary przy definicji strumienia, bo bedzie ci znak nowej linii ( /n ) zle interpretowal, czy jakto tam bylo ;)

Korzystając z metody write((char *) &Obiekt, Obiekt) zapisuje wskaźnik , a nie zawartośc stringu.

nom jakby nie patshec to tia :] tyle ze 2gi arg to 4siur nie obiekt tylko jakis typ calkowity int albo long pewnie ktory ci okresla ile bajtoff poczaffshy od adresu podanego jako arg aktualny tej metody naleshy "wrzucic" do strumienia :]

Konsekwencje takiego podejscia sa oczywiste, wczytując dane z pliku wczytuje adres komorki...

niom :] heh, to sobie zapish do pliku dlugosc stringu a potiem dana tablice znakowa :] mhm... 4example :

char tz[] = "blabla";
int len = strlen( tz );
out.write( reinterpret_cast< char* >( &len ), sizeof tz ); // out == ostream& ;)
out.write( tz, sizeof tz );

Czy jest w ogole taka mozliwosc zapisania zawartości wyłuskanego wskaznika.

asUseeAbove :] oszyffiscie jak sobie dynamicznie tablice alokujesz to musish odpowiednio sobie te implementacyje maznac ;)

Drugie pytanie, dlaczego argumentem funkcji write i read jest rzutowanie jawne do typu char*.
Wiem tylko tyle, że funkcje write i read oczekują wsk do znaku, stąd to rzutowanie, ale dlaczego?

pewnie dlatego specyfikacja ++sa daje gwarancyje ish typ char == 1 bajt, a to sa niskopoziomowe operacyje dzialajace na poshczegolnych... bajtah :] i think :]

Za udzielone wskazowki z góry bardzo dziekuje

nie za maco ;) pozdro

0

Mile mnie zaskoczyłes...baaardzo Ci dziekuje :)
Pozdrawiam

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