Ver Mensaje Individual
  #14 (permalink)  
Antiguo 10/05/2006, 11:43
Nivel7
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 10 meses
Puntos: 2
hay unas dudas que me quedan, pero es por falta de conocimiento de tu codigo, espero que todo este bien, como el manejar el p_nodo p como un puntero a nodo, es probable que tengas un typedef, por que el parametro no es un puntero.

en realidad no es necesario el getchar() en ese nivel. te lo mecione para el caso de main, para que esta funcion no terminara antes de mostrar los datos, pero creo que usaste el system("pause"); es mejor asi.

El problema de doble lectura del ultimo nodo es por la forma en que lees tus ficheros:

while(!feof(in))
{fscanf(in,"%s %s",ex,coe);
p=crea_nodo(1,1);
p->exp=strtod(ex,0);
p->coef=strtod(coe,0);
p->seg=aux1->seg;
aux1->seg=p;
aux1=aux1->seg;
}

cuando lees el ultimo nodo, el cursor de lecctura se pocisiona listo para leer el EOF, por tanto al usar feof(in) aun no te da true, pues aun no se lee el final, por tanto al leer el EOF, se guardan en tus nodos los datos leidos anteriormente.

yo lo he cambiado a esta forma:

while(fscanf(in,"%s %s",ex,coe) != EOF)
{
}

intentalo y me cuentas.