#include <cstdlib>
#include <iostream>
#include <string.h>
#include <fstream>

using namespace std;

struct t_alunno
{
string nome;
string codice;
int eta;
};
t_alunno alunno;

int Lungh=sizeof(alunno);

int nrecord;
int i;
bool trovato;
int scelta;
int posizione;
string codicex;

void caricamento();
void stampa();
void modifica();
void cancellazione_logica();

const char NomeFile[]="Prova.dat";
fstream File1;

int main()
{
File1.open(NomeFile,ios::in|ios:ut|ios…
/*metodo per aprire il file
ios:in il file viene utilizzato in lettura (se il file non esiste da errore)
iosut il file viene utilizzato in scrittura
ios:binary il file è un file binario
ios:ate all'apertura del file si posiziona in coda(se il file non esiste da errore)*/

if(!File1)
{
File1.close();
File1.open(NomeFile,ios:ut|ios::binary…
File1.close();
File1.open(NomeFile,ios::in|ios:ut|ios…
}

nrecord=File1.tellg()/Lungh;
cout<<nrecord;
caricamento();
cout<<nrecord;
caricamento();
cout<<nrecord;
stampa();
File1.close();

system("PAUSE");
return EXIT_SUCCESS;
}

//*void modifica()*
/*{
fp=fopen("prova.dat","wr");
cin>>codicex;
nrecord=sizeof(alunno);
i=0;
trovato = false;
while ((i<=nrecord)&&(!trovato))
{
if (codicex==alunno.codice)
{
fread(&buffer,sizeof(alunno.codice),1,fp…
posizione=i;
trovato=true;
cout<<"Vuoi modificare? 0=NO 1=SI";
cin>>scelta;
if (scelta==1)
{
cin>>alunno.eta;
fwrite(&buffer,nrecord,1,fp);
}
}
i++;
}
fclose(fp);
}

void cancellazione_logica()
{
fp=fopen("prova.dat","wr");
cin>>codicex;
nrecord=sizeof(alunno);
i=0;
trovato = false;
while ((i<=nrecord)&&(!trovato))
{
if (codicex==alunno.codice)
{
posizione=i;
trovato=true;
cout<<"Vuoi eliminare? 0=NO 1=SI";
cin>>scelta;
if (scelta==1)
{
alunno.codice="**";
fwrite(&buffer,nrecord,1,fp);
}
}
i++;
}
fclose(fp);
}*/

void caricamento()
{

cin>>alunno.nome;
cin>>alunno.eta;
cin>>alunno.codice;
File1.seekp(nrecord * Lungh);
File1.write((char*) &alunno, Lungh);
nrecord++;

}

void stampa()
{

File1.seekg(0);
for(i=0;i<nrecord;i++)
{
File1.read((char*) &alunno, Lungh);
if (alunno.codice!="**")
{
cout<<alunno.nome;
cout<<alunno.eta;
cout<<alunno.codice<<endl;
}
}

}

Che problema c'è nel caricamento e nella stampa ?
Quando stampa mi stampa l'ultima cosa caricata per le N volte caricate
(Sì, lo so, le altre procedure non le ho chiamate nel programma principale e sono sbagliate, infatti sono commentate, perchè voglio provare prima stampa e caricamento.