In questo semplice programma di prova cercavo di interagire con i file e le classi, ma ho notato il bisogno di dover troncare determinate stringhe ed ho buttato giù questo codice...che durante l'inserimento sembra funzionare.
Ma provate a vedere l'OUTPUT da terminale! La visualizzazione è strana in quanto fonde la stringa ID con la stringa nome cioè:
Output finale ...che è alquanto strano
Inserisci la dimensione del vettore di fatture da creare: 1
Inserisci l'ID: IDTROPPOLUNGO
L'ID da troncare e': IDTROPPOLUNGO
L'ID troncato e': IDTRO
Inserisci il nome cliente: HtmlForum.it
Inserisci l'importo: 999.99
...// LETTURA FILE
La dimensione del file e': 1
ID:IDTROHtmlForum.it
Cliente:HtmlForum.it
Data:Oct 18 2011
Importo:999.99
Press any key to continue
Inserimento nella classe:
Visualizzazione successiva del file:codice:class fatture{ public: char ID[5]; char cliente[100]; float importo; char data[10]; fatture(); }; fatture::fatture(){ strcpy(ID,"x"); strcpy(cliente,"non inserito"); strcpy(data,__DATE__); importo=0; } ...//allocazione dinamica vettore di classi for(int i=0;i<dim;i++){ puts("Inserisci l'ID: "); cin.sync(); cin.getline(str,100); cout<<"L'ID da troncare e': "<<str<<endl; for(int j=0;j<5;j++) v[i].ID[j]=str[j]; v[i].ID[5]='\0'; cout<<"L'ID troncato e': "<<v[i].ID<<endl; puts("Inserisci il nome cliente: "); cin.sync(); cin.getline(v[i].cliente,100); puts("Inserisci l'importo: "); cin>>v[i].importo; }
grazie in anticipo per ogni eventuale aiutocodice:fp=fopen("fatture.dat","rb"); fseek(fp,-sizeof(dim),SEEK_END); fread(&dim,sizeof(dim),1,fp); rewind(fp); cout<<"La dimensione del file e': "<<dim<<endl; fread(v,sizeof(fatture)*dim,1,fp); for(i=0;i<dim;i++){ printf(" ID:%s\n Cliente:%s\n Data:%s\n Importo:%g\n",v[i].ID,v[i].cliente,v[i].data,v[i].importo); }![]()

Rispondi quotando
potete chiudere :P
