Witam, tym razem nawet google mi nie pomogły, ani artykuł na tym forum : http://4programmers.net/C/Artyku%C5%82y/Odczyt_i_zapis_plik%C3%B3w_binarnych_w_Cpp
Hmm to moze zaczne od ukazania mojej klasy:
class c_user
{
public:
c_user(std::string i_nick, std::string i_e_mail, std::string i_haslo, std::string i_smtp, short int i_port):
nick(i_nick), e_mail(i_e_mail), haslo(i_haslo), smtp(i_smtp), port(i_port)
{
}
c_user()
{
}
~c_user()
{
}
std::string GetNick() const {return nick;}
std::string GetE_mail() const {return e_mail;}
std::string GetHaslo() const {return haslo;}
std::string GetSmtp() const {return smtp;}
short int GetPort() const {return port;}
void SetNick(std::string a_nick) {nick=a_nick;}
void SetE_mail(std::string a_e_mail) {e_mail=a_e_mail;}
void SetHaslo(std::string a_haslo) {haslo=a_haslo;}
void SetSmtp(std::string a_smtp) {smtp=a_smtp;}
void SetPort(short int a_port) {port=a_port;}
private:
std::string nick;
std::string e_mail;
std::string haslo;
std::string smtp;
short int port;
};
Tworze do niej wskaznik i alokuje pamiec na stercie:
c_user* pUser=new c_user
W zaleznosci od tego czy uzytkownik wybierze opcje nowej konfiguracji czy uzycia ostatniej konfiguracji wywoluje funkcje: zapis_ostatniej_konfiguracji() ktora zapisuje nowa konfiguracje lub odczut_konfiguracji() gdy uzytkownik wybierze ostatnia konfiguracje..
Zapisuje tak:
pUser=Kreator();//tworzy nowy obiekt typu c_user na stercie
std::ofstream fout("c_user",std::ios::binary);
if (!fout) f_error_savefile();
fout.write((char*) pUser,sizeof (*pUser));
fout.close();
odczytuje tak:
pUser=new c_user;
std::ifstream fin("c_user",std::ios::binary);
if (!fin) f_error_loadfile();
fin.read((char*) pUser, sizeof (*pUser));
fin.close();
I niby wszystko okej a jednak w sytuacji kiedy uzytkownik wybierze ostatnia konfiguracje program wywala sie w miejscu gdzie probuje odwolac sie do skladowych klasy c_user.. Wywala sie to znaczy zamiast wypisywac prawidlowe dane to wali jakies nazwy procesow,, katalogi do plikow i ine nie znane mi znaki.. wiec przypuszczam ze cos nie tak jest z zapisem/odczytem do/z plikow bunarnych.. meczylem sie z tym pol dnia i nie wiem co robie zle;( z gory dziekuje za pomoc