primero de todo, me presento ya que es mi primer mensaje. Hola a todos ^^
Segindo: gracias a los que puedan ayudarme.
Me explico:
Necesito hacer un programa de una "calculadora de polinomios", pero me han surgido algunas dudas.
1ª-No puedo (o más bien no me sale) cargar ficheros. Además de entrar los polinomios desde teclado, debe de ser posible cargarlos de un archivo de texto o de uno binario, pero me da error.
He hecho la función para cargarlos de texto, pero algo debe de estar mal, la pongo aquí a ver si alguien ve algún error en ella:
Se supone que los polinomios estám hechos por nodos (cada nodo tiene el coeficiente y exponente y apunta al siguiente). Los archivos a leer, tienen un número (exponente, tipo int), un espacio y otro número (coeficiente, tipo float) en cada línea.
int lee_de_texto(char *nombre, p_nodo l)
{FILE *in;
p_node p;
char ex,coe;
in=fopen(nombre,"r");
if(!in) return(-1);
inicializa(l);
while(!feof(in))
{fscanf("%s %s",ex,coe);
p=crea_nodo(1,1);
p->exp=atoi(ex);
p->coef=aof(coe);
p->seg=l->seg;
l->seg=p;
fclose(in);
return(0);
}
if(!p)
{inicializa(l);
fclose(in);
return(1);
}
El tipo de estructura "p_nodo" está bien, porque lo he utilizado en otras partes del programa y funciona. Las funciones "inicializa" y "crea_nodo" también están bien, por eso no las pongo.
No se lo que está mal. ¿Puede ser que en lugar de "fscanf" haya que usar "fgets"? Si es así, decirme que hay que poner dentro del parentesis de "fgets" que esta no se como va ^^U.
¿Podríais decirme también las diferencias que tiene que tener la función para los archivos binarios? (aparte de cambiar "r" por "rb", creo).
gracias por la ayuda.
P.D:Si en algo no me he explicado bien o algo, decirmelo e intentaré ponerlo mejor ^^U.