Citat:
Moraš da svaki član klase zapišeš ponaosob uz pomoć operatora << i da posle čitaš svaki član istim redosledom pomoću operatora >>.
E sad mi tu nesto nije jasno.
Kada ja upisujem sa "out.write((char*)&s,sizeof(s))" tada se u datoteku zapisuje onoliko znakova koliko je s tj sizeof(s) (ako je ime studenta definisano kao char[20] a unesemo ime od 15 zankova i onoh dodatnih 5 ce biti upisano u datoteku i ako to nije deo imena.
Medjutim kada preklopim operator << ovako:
ofstream& operator<< (ofstream& out,const student& s) {
out<<s.ime;
out<<s.datrod;
out<<s.index;
return out;
}
u datoteku se upisije samo onliko znakova imena koliko je i uneto (bez onih dodatnih 5).
Sad mi nije jasno kako preklopiti operator >>. Ovako ne moze:
ifstream& operator>> (ifstream& in,student& s) {
in>>s.ime;
in>>s.datrod;
in>>s.index;
return in;
}
jer otkud prevodilac moze znati kolika je duzina imena (kada je upisano onoliko zankova koliko je uneto.
Gde pravim gresku???