[C++] Odczyt i zapis danych na plikach tekstowych
Ostatnio zmodyfikowano 2015-01-12 16:30
lamamasters Temat założony przez niniejszego użytkownika |
» 2015-01-11 02:23:44 Michał (1aam2am1), dzięki za pomoc, Twój kod zapisuje dane tekstowe do pliku w formie realnego tekstu! Mógłbym Cię prosić jeszcze o napisanie fread? Niestety nie potrafię sobie z tym poradzić.
Odkryłem, że mój kod działa w pełni poprawnie, ale tylko w przypadku danych innych niż tekstowe... :)
Pozdrawiam! |
|
1aam2am1 |
» 2015-01-11 12:34:03 http://www.cplusplus.com/reference/cstdio/fread/ |
|
lamamasters Temat założony przez niniejszego użytkownika |
» 2015-01-11 16:45:41 Niestety byłem już na tej stronie, jeszcze przed napisaniem tego postu na forum. Mógłbyś mi pomóc i dopisać fread? W funkcji odczytBazy();#include <iostream> #include <fstream> #include <iomanip> #include <string>
using namespace std;
class klasa { public: std::string imie; std::string nazwisko; };
int rozmiarBazy = 2; klasa tablica[ 2 ]; klasa tablica2[ 2 ];
void zapisBazy() { FILE * fd = NULL; if(( fd = fopen( "baza.txt", "wt" ) ) != NULL ) { for( int i = 0; i < rozmiarBazy; i++ ) { fwrite( tablica[ i ].imie.c_str(), tablica[ i ].imie.size(), 1, fd ); } fclose( fd ); } else { cout << "Bład zapisu bazy!"; } }
void odczytBazy() { FILE * fd = NULL; if(( fd = fopen( "baza.txt", "rt" ) ) != NULL ) { for( int i = 0; i < rozmiarBazy; i++ ) { } fclose( fd ); } else { cout << "Bład odczytu bazy!"; } }
void wypiszBaze() { for( int i = 0; i < rozmiarBazy; i++ ) { cout << tablica2[ i ].imie << endl; } }
main() { tablica[ 0 ].imie = "3Kamil"; tablica[ 1 ].imie = "Ada"; zapisBazy(); odczytBazy(); wypiszBaze(); cin.ignore(); getchar(); }
|
|
1aam2am1 |
» 2015-01-12 16:30:51 fseek( fd, 0, SEEK_END ); size_t lSize = ftell( fd ); rewind( fd );
char * buffer;
buffer = new char[ lSize + 1 ];
fread( buffer, 1, lSize, fd );
tablica[ i ].imie = buffer;
delete[] buffer;
Powinno chyba działać, ale nie sprawdzałem |
|
1 « 2 » |