Dlaczego to mi caly czas zapisuje smieci do pliku tekstowego zamiast danyc ktore podaje ?
Bylbym wdzieczny za mala pomoc...
static char _Fname[32] = "ksiazka.txt"; /zmienna globalna/
class osoba
{
char *nazw;
char *imie;
int wiek;
public:
int nr;
void wyswietl();
int wprowadz();
osoba(char *imie, char *nazw, int wiek); //konstruktor z parametrami 1
~osoba(); //desktruktor
};
osoba::osoba(char *imie, char *nazw, int wiek) //konstruktor z parametrami 1
{
cout<<endl<<"Uruchamiam konstruktor z parametrami (imie, nazwisko, wiek)."<<endl<<endl;
this->nazw=strdup(" ");//zarezerwowanie pamieci
this->imie=strdup(" ");
strcpy(this->imie,imie);
strcpy(this->nazw,nazw);
this->wiek=wiek;
cout<<"Utworzylem osobe:"<<endl;
cout<<"Imie: "<<this->imie<<endl;
cout<<"Nazwisko: "<<this->nazw<<endl;
cout<<"Wiek: "<<this->wiek<<endl<<endl;
};
osoba::~osoba()//destruktor
{
cout<<"Wywoluje destruktor"<<endl<<endl;
cout<<"Usuniety obiekt osoba:"<<endl;
cout<<"Imie: "<<imie<<endl<<"Nazwisko: "<<nazw<<endl<<"wiek: "<<wiek<<endl<<endl;
};
void menu()
{
cout<<"1 - Wprowadz"<<endl;
cout<<"2 - Wyswietl na ekran"<<endl;
cout<<"Esc - Wyjscie"<<endl;
};
void menu_wpr()
{
clrscr();
/*cout<<"Ilosc osob w bazie (pobierana ze skladowej statycznej): "<<osoba::IleObiektow()<<endl<<endl;
ZLICZYC ELEMENTY W PLIKU BINARNYM */
cout<<"1 - Uzyj konstruktora z paramentrem nr 1 (imie,nazw,wiek)"<<endl;
cout<<"ESC - Powrot do poprzedniego menu"<<endl;
cout<<"______________________________________________________________"<<endl;
};
int wpr(osoba **osoby)
{
clrscr();
menu_wpr();
int k=0;
while (k!=27)
{
k=getch();
clrscr();
switch (k)
case '1' : {
cout<<"Konstruktor z parametrem 1 (imie, nazwisko, wiek)"<<endl<<endl;
char *imie=strdup(" ");
char nazw=strdup(" ");
int wiek=0;
cout<<"Podaj imie: ";
cin>>imie;
cout<<"Podaj nazwisko: ";
cin>>nazw;
cout<<"Podaj wiek: ";
cin>>wiek;
osoba dane=new osoba(imie, nazw, wiek);
osoby[1]=dane;
FILE f = fopen(_Fname, "wt");
if(!f) return 0;
fwrite((char)&dane, sizeof(osoba), 1, f);
fclose(f);
free(imie);
free(nazw);
cout<<endl<<"Wcisnij ENTER...";
getchar();
};
}
return 1;
};
void main()
{
osoba osoby=(osoba) malloc (sizeof(osoba*));
clrscr();
int key=0;
while (key!=27)
{
clrscr();
menu();
key=getch();
switch (key)
{
case '1' : wpr(osoby);break;
//case '2' : wysw(osoby); break;
}
};
delete osoby;
free(osoby);
};