08/05/2006, 04:04
|
| | Fecha de Ingreso: mayo-2006
Mensajes: 11
Antigüedad: 18 años, 8 meses Puntos: 0 | |
NOTA: Ya he habia mirado las FAQs y alguna duda me resolvieron(como la diferencia entre archivo de texto y binario), pero aun asi hay cosas que no me salen. Lo siento, pero es que esto no se me da muy bien ^^U (motivo por el cual al final no me meti en la carrera de informatica xD).
La funcion de guardar ya me funciona, parece que al poner %s en vez de %c y getchar() funciona bien ^^ gracias.
Pero ahora bien, he modificado la de leer texto pq me di cuenta de que habia una cosa mal (al assignar el valor, no al abrir el fichero, asi que lo de que no lo abria no es consecuencia de ese error, creo) y he puesto el getchar() por si acaso.
La pongo:
int lee_de_texto(char *nombre, p_nodo l)
{FILE *in;
p_node p,aux1;
char ex[5],coe[20];
in=fopen(nombre,"r");
if(!in) return(-1);
inicializa(l);
aux1=l->seg;
while(!feof(in))
{fscanf(in,"%s %s",ex,coe);
p=crea_nodo(1,1);
p->exp=atoi(ex);
p->coef=aof(coe);
p->seg=aux1->seg;
aux1->seg=p;
aux1=aux1->seg;
fclose(in);
getchar();
return(0);
}
if(!p)
{inicializa(l);
fclose(in);
return(1);
}
}
Pongo la parte donde la utilizo:
esta dentro del main() en un menu.
case'b':{printf("\nSi cargas un polinomio en uno existente, el anterior se perdera.\n Si quieres continuar escrive 0, si quieres salir de esta opcion escrive 1\n");
scanf("%d",&can);
if(can==0)
{printf("\nEscrive el nombre del archivo.\n");
scanf("%s",&nombre);
system("pause");
printf("\nEscrive A o B en funcion del polinomio al que quieras asignar el valor del archivo.\n");
fflush(stdin);
scanf("%c",&op);
if(op=='A' || op=='a')
{A=inicialitza();
llee_de_texto(nombre,A);
limpia(A);
entrarA=1;
}
else if(op=='B' || op=='b')
{B=inicialitza();
llee_de_texto(nombre,B);
limpia(B);
entrarB=1;
}
else printf("\nPon la lletra A o B, no importa si es majúscula o minúscula.");
}
};
break;
Las variables que uso para las diferentes opciones (can, op...) estan declaradas. Y las funciones que no estan aqui las he probado y funcionan.
Tal y como esta ahora, llega correctamente hasta el (printf("\nPon la lletra A o B, no importa si es majúscula o minúscula.");). Despues de seleccionarla y pulsar ENTER me sale la ventana de "windows a detectado un error y debe cerrar el programa ".
Ese es el unico error que me da de momento. Gracias por la ayuda. |