Pliki binarne - podstawy
Ostatnio zmodyfikowano 2013-08-04 16:28
Farsz Temat założony przez niniejszego użytkownika |
Pliki binarne - podstawy » 2013-08-04 14:48:41 Witajcie. Jestem zasadniczo nowy w c++ (kurs odbyłem i trochę sfmla liznąłem) i nigdzie nie mogę znaleźć jasnej i prostej informacji o zapisie i odczytywaniu plików binarnych. Mógłby ktoś to zagadnienie podać na dłoni? Z góry dziękuję.
Tak, przeglądałem internet, ale mój brak doświadczenia nie pozwala na zrozumienie znalezisk ;) |
|
pekfos |
» 2013-08-04 14:52:54 Czego nie wiesz, nie rozumiesz? |
|
Farsz Temat założony przez niniejszego użytkownika |
» 2013-08-04 15:09:14 Tak po prawdzie to niczego w tym temacie :/ Dopisuję ios::binary i pobieram/zapisuję dane blokami i co innego mi wczytuje niż zapisałem. Pewnie robię coś głupiego. Jak byłbyś tak dobry i napisałbyś kawałek poprawnego kodu to byłbym wdzięczny. |
|
Monika90 |
» 2013-08-04 15:12:48 Pokaż możliwie krótki fragment kodu, który demonstruje problem, a my powiemy Ci co robisz źle. |
|
Farsz Temat założony przez niniejszego użytkownika |
» 2013-08-04 15:34:55 Zapis int main() { std::fstream plik( "plik.bin", std::ios::out | std::ios::binary ); char * ch = "16"; plik.write( ch, 1 ); plik.close(); return 0; } I wczytanie int main() { std::fstream plik( "plik.bin", std::ios::in | std::ios::binary ); char ch; plik.read( & ch, 1 ); plik.close(); std::cout << ch; return 0; } Udało mi się osiągnąć więcej niż do tej pory, bo chociaż pierwszą cyfrę liczby wczytuje :D Sory za słabą organizację tematu, ale to mój pierwszy ;) |
|
pekfos |
» 2013-08-04 15:37:59 Nie o to chodzi w binarnym zapisie i odczycie liczb. Drugi argument write() i read() określa ile bajtów chcesz zapisać/odczytać. |
|
Farsz Temat założony przez niniejszego użytkownika |
» 2013-08-04 15:50:49 Wiem o drugim argumencie. Nie sądzę, żeby "16" miało więcej niż jednego bajta ;) Z twojego stylu pisania wnioskuję, że czegoś oczywistego nie rozumiem. Napisz proszę, na czym polega mój błąd w rozumowaniu. |
|
skovv |
» 2013-08-04 15:51:05 Hmm.. Czyli: char * ch = "16"; plik.write( ch, sizeof(ch) );
? |
|
« 1 » 2 |