Sapreste dirmi cosa c'è di sbagliato in questo programma che ho fatto, ma non riesco a fare girare? Non ho mai usato le funzioni sulle stringhe e probabilmente è lì l'errore; il file di testo contiene parole di lunghezza non predefinita e separate da uno spazio.
Grazie per l'eventuale aiuto.
codice:#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct na{ char*inf; struct na*sin; struct na*des; }ALBERO; ALBERO*creaAlbero() { return NULL; } ALBERO*insertAlbero(ALBERO*a,char*v) { ALBERO*t; if(a==NULL){ t=(ALBERO*)malloc(sizeof(ALBERO)); if(t==NULL) return NULL; else{ strcpy(t->inf,v); t->sin=NULL; t->des=NULL; return t; } } else{ if((strcmp(a->inf,v))>=0) a->sin=insertAlbero(a->sin,v); else a->des=insertAlbero(a->des,v); return a; } } void stampaAlbero(ALBERO*a) { if(a!=NULL){ stampaAlbero(a->sin); printf("%s\n",a->inf); stampaAlbero(a->sin); } } int main() { ALBERO*al; char*x; FILE*f; al=creaAlbero(); f=fopen("dati.txt","r"); if(f==NULL){ printf("errore in memoria"); exit(-1); } else{ while((fscanf(f,"%s",x))!=EOF) al=insertAlbero(al,x); } fclose(f); stampaAlbero(al); system("PAUSE"); return 0; }

Rispondi quotando