int leer_contorno_fichero (tContorno *dibujo, tNombre nombre_fichero) { int i; FILE *fp; fp=fopen (nombre_fichero,"r"); i=0; while (!feof(fp)) { leer_coordenada_fichero(fp, &dibujo->contorno[i]); i++; } return i+1; fclose (fp); } int leer_coordenada_fichero(FILE *fp, tCoordenada *coordenada) { if (fp==NULL) { printf ("Error al abrir el fichero"); return 0; } else { fscanf (fp,"(%f,%f)", &coordenada->longitud,&coordenada->latitud); return 1; } } mira yo tngo esto, aunk yo leer coordenada no lo uso apra nada, para evitarme problemas jeje: int leer_coordenada_fichero(FILE *fp, tCoordenada *coordenada) { char nombre_fichero [30]; fp = fopen (nombre_fichero,"w"); if (fp==NULL){ printf("Error, no s'ha pogut trobar el fitxer demanat.\n"); return 0; }else{ fscanf (fp, "(%f,%f)\n",&coordenada->latitud,&coordenada->longitud); } return 1; fclose (fp); } fijate en el char nombre, tu tienes k abrir un fixero para poder leer. suerte xDD