Ciao a tutti, qualcuno di voi puo' aiutarmi x piacere a capire cosa fa questo pezzo d codice?Grazie
/* LEGGI UNA PAROLA */ void par(FILE *fp, char *elemento) { int i=0; char iC;
while((iC=getc(fp)) != ' ' && !feof(fp)) { elemento[i++]=iC; }
elemento[i]='\0'; } /* LEGGI UNA PAROLA */
/* LEGGI PAROLA PER PAROLA */ struct parola *crea(void) { struct parola *p1; /* P1 PUNTA ALL'ULTIMO ELEMENTO DELLA LISTA */ FILE *fp; char nomefile[100],temp[10]; int i,j;
printf("insericsci il nome del file \n\n"); scanf("%s",nomefile); printf("\n");
fp=fopen(nomefile,"r");
if(!(fp)) { printf("Errore! \n"); printf("Nome file non valido! \n\n\n"); return(crea()); }
p=(struct parola *)malloc(sizeof(struct parola));
par(fp,temp);
for(i=0;temp[i]!='\0';i++) { p->word[i]=temp[i]; }
p->word[i]='\0'; /* HO INSERITO IL PRIMO ELEMENTO NELLA LISTA */
p->f=atof(p->word); /* TRASFORMO LA STRINGA DI NUMERI IN FLOAT */
p1=p;
do /* CON IL DO..WHILE RIEMPIO LA LISTA CON GLI ALTRI VALORI PRESENTI NEL FILE */ { p1->next=(struct parola *)malloc(sizeof(struct parola)); p1=p1->next;
par(fp,temp);
for(j=0; temp[j]!='\0';j++) { p1->word[j]=temp[j]; } k++; /* K CONTIENE IL NUMERO DI ELEMENTI DELLA LISTA */ p1->word[j]='\0';
p1->f=atof(p1->word); /* TRASFORMO LE RESTANTI STRINGHE IN FLOAT */
} while(!feof(fp));
p1->next=NULL;
printf("Ho creato la lista e l'ho riempita con i dati del file!!!\n"); printf("\n");
fclose(fp);
return(p);
} /* LEGGI PAROLA PER PAROLA */
|