Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // esame 27 06 2016
- // file 270616.txt
- # include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- struct dati{
- int anno;
- int mese;
- int mittente;
- char nomiM[31];
- int destinatario;
- char nomiD[31];
- char localita[31];
- };
- struct dati *letturaFile(FILE*f,int *n);
- void stampaDati(struct dati *d,int n);
- int main(int argc,char *argv[]){
- int n;
- struct dati *dati;
- FILE *f;
- if(argc!=2){
- printf("paramentri inseriti errati\n");
- return 1;
- }
- f=fopen(argv[1],"r");
- if(f==NULL){
- printf("file non trovato \n");
- return 1;
- }
- // stampa e lettura struct
- dati=letturaFile(f,&n);
- fclose(f);
- stampaDati(dati,n);
- return 0;
- }
- struct dati *letturaFile(FILE*f,int *n){
- int nConv;
- int size=10;
- char buffer[100];
- struct dati *d1,*d2;
- *n=0;
- d2=malloc(size*sizeof(struct dati));
- while(fgets(buffer,sizeof(buffer),f)){
- d1=d2+ *n;
- nConv=sscanf(buffer,"%d %d %s %s %s",&d1->anno,&d1->mese,d1->nomiM,d1->nomiD,d1->localita);
- if(strcmp(d1->nomiM,"Gino")==0){
- d1->mittente=0;
- }
- if(strcmp(d1->nomiM,"Tino")==0){
- d1->mittente=1;
- }
- if(strcmp(d1->nomiM,"Toni")==0){
- d1->mittente=2;
- }
- if(strcmp(d1->nomiM,"Luigi")==0){
- d1->mittente=3;
- }
- if(strcmp(d1->nomiM,"Mario")==0){
- d1->mittente=4;
- }
- if(strcmp(d1->nomiM,"Ugo")==0){
- d1->mittente=5;
- }
- if(strcmp(d1->nomiD,"Gino")==0){
- d1->destinatario=0;
- }
- if(strcmp(d1->nomiD,"Tino")==0){
- d1->destinatario=1;
- }
- if(strcmp(d1->nomiD,"Toni")==0){
- d1->destinatario=2;
- }
- if(strcmp(d1->nomiD,"Luigi")==0){
- d1->destinatario=3;
- }
- if(strcmp(d1->nomiD,"Mario")==0){
- d1->destinatario=4;
- }
- if(strcmp(d1->nomiD,"Ugo")==0){
- d1->destinatario=5;
- }
- (*n)++;
- if(*n>size){
- size=size*2;
- d2=realloc(d2,size*sizeof(struct dati));
- }
- }
- d2=realloc(d2,*n*sizeof(struct dati));
- return d2;
- }
- void stampaDati(struct dati *d,int n){
- int i;
- for(i=0;i<n;i++){
- printf("%d %d %s %d %s %d %s\n",d[i].anno,d[i].mese,d[i].nomiM,d[i].mittente,d[i].nomiD,d[i].destinatario,d[i].localita);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement