Pliki binarne

0

Mam pytanie/problem. Jak w C++ zapisać do pliku binarnego jakiś tekst ( string, char[] ) ?
Jeśli chodzi o liczby to bez problemu zapisuje ale jak chce jakiś napis to zapisuje normalnie ( w notatniku sprawdzam ).
Próbowałem np. tak:

ofstream file("foo.txt", ios::binary);
char c = 'a';
file.write(&c, sizeof(c));
ofstream file("foo.txt", ios::binary);
char* c = new char[1];
c[0] = 'a';
file.write(c, sizeof(c));
delete [] c;

Da się w ogóle zapisać jakiś napis do pliku binarnego? Jeśli nie to można w ogólne przez pliki binarne obsługiwać jakiś tekst/napis czy tylko liczby? Może jakoś zamienić poszczególne znaki na nr. znaku?

Z góry THX za pomoc.

0

Pierwszy sposób jest ok, drugi to tragedia - sizeof nie zwróci Ci tego co Ci się wydaje.
Pliki binarne i tekstowe różnią się tylko obsługą znaków LF i CR. Jeden znak to jeden bajt, więc jak zapiszesz bajt o wartości 'a' to tak zostanie odczytany przez notatnik - to jest tylko kwestia interpretacji zawartości pliku.

0

Czyli jeśli zapiszę jakąś literę binarnie to czy tak czy tak zostanie ona wyświetlona w notatniku normalnie jak w trybie tekstowym?
Ale jak char dałem nie 'a' tylko np. '1' to też normalnie zapisało, a a jak dałem nie char tylko int to inaczej było, były krzaczki w notatniku.
A co jeśli mam ciąg znaków i chce go zapisać binarnie? i co do tego wyżej jak mam tam litery i cyfry?

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