come giustamente diceva alka, una classe e` inutile per un tipo di dato di quel genere.
si puo' ovviare con la *struct*, che, IMHO, e` piu' funzionale e facile da gestire.
codice:
typedef struct {
int eta;
char nome[SIZE], cognome[SIZE], residenza[SIZE];
} Atleta;
e poi per le funzioni di scrittura:
codice:
Atleta atleta;
fstream fio("file.dat", ios::in | ios::out);
fio.write(reinterpret_cast<const char*>( &atleta ), sizeof(Atleta));
la lettura e` quasi simile:
codice:
fio.read(reinterpret_cast<char*>( &atleta ), sizeof(Atleta));
Suggerirei anche un campo che potrebbe funzionare come una sorta di chiave univoca, un semplice campo intero da inserire nella struct. Tipo:
int id;
con questo campo ti puoi spostare all'interno del file con l'operatore *sizeof*. Per esempio:
codice:
fio.seekp((atleta.id - 1) * sizeof(Atleta));
P.S. niente da obbiettare sulle funzioni C, ma mi chiedevo come mai, se non si hanno esigenze particolari, non usare le classi di C++ per scrivere su disco, considerando anche le ottimizzazioni che possiedono...
Saluti