Wisemog
Registrado: 25 Oct 2007 Mensajes: 1
| Publicado: 25/10/2007 6:58 am | | | Título: Creacion de nodos a partir de un fichero |
| Buenas, tengo que hacer un pequeño programa que simule un banco, todo a partir de la lectura de un fichero donde estan escritos los datos necesarios. Mi problema principal es que no se como crear los nodos (nodos para una cola a partir de la cual voy a trabajar mas adelante) mediante la lectura del archivo. esto seria lo que tengo escrito para la funcion de lectura :
| Cita: | void abrir(void) { FILE *p ; char i,letra,cuenta,nmov,tipomov,tipocliente,monto,a,b,c ;
p = fopen("archivo.txt","r"); if(p == NULL ) { printf("No se puede abrir el fichero\n"); exit(1); }
while(feof(p) == 0 ) { letra = fscanf(p,"%s-15%c%s-10%c%c%c%c%s-8",cuenta,a,nmov,b,tipomov,c,tipocliente,monto) ; } }
|
dentro del ciclo while pretendo introducir un funcion para crear los nodos, bajo la siguiente estructura :
| Cita: | typedef struct nodo{ // cola char cuenta[15]; char nmov[10]; char tipomov[1]; char tipocliente[1]; float monto ; nodo *prox; };
nodo *q ;
|
Como se podran dar cuenta, mediante el fscanf pretendo grabar en la estructura los datos (cuenta en cuenta, nmov en nmov, etc), pero ese proceso es el que no he podido lograr hasta ahora  Ojala que me puedan pegar una ayudadita con esto. De antemano gracias. |
|
rir3760

Registrado: 01 Oct 2004 Mensajes: 3650 Ubicación: Mexico
| Publicado: 25/10/2007 9:20 am | | | Título: |
| Para empezar en la llamada a fscanf te falta el uso del operador "direccion de" (el '&').
Tambien hay que aclarar que controlar un bucle mediante la funcion feof no es una buena idea porque (¿Cuantas explicaciones van con esta?) esa funcion solo devuelve un valor verdadero despues que una funcion de lectura trata de leer datos del archivo y falla al ya no haber mas datos que leer. Esto usualmente se concreta en un bucle que procesa la ultima linea/dato dos veces.
Para ayudarte a formar la llamada necesitas explicar cual es la estructura interna del archivo de datos, por ejemplo si cada linea equivale a un registro, lineas de ejemplo sacadas de este , etc.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|