Tengo un programa en el cual tengo que crear un nuevo tipo de dato struct en el cual voy a tener 3 variables, una que es el documento de la persona, la otra es el nombre de la persona y por ultimo la nacionalidad de la persona.
Al principio lo que tengo que hacer es cargar manualmente el nuevo tipo de dato, la carga va a finalizar cuando el documento sea igual a 0.
Luego va a pasar todo lo cargado a un archivo txt. (Hasta aca, va perfecto todo )
El problema surge cuando tengo que leer el archivo e imprimir el contenido . Lo que sucede es que cuando pongo while(!feof(fd)) la lectura del archivo no termina nunca, siempre me arroja los mismos valores, nunca termina el ciclo y ademas nunca me carga la nacionalidad.
El archivo se va a cargar de la siguiente manera.
38747443,Agustin,Argentina
Es decir que en cada linea del archivo txt voy a tener ese tipo de secuencia.
Este es el codigo que hice
Código
#include <stdio.h> #include <stdlib.h> #include <conio.h> #define N 5 struct s_datos { int doc; char nombre[50]; char pais[50]; }; typedef struct s_datos dato; int CARGA(dato charge[N]); void CREACION(dato charge[N],int); void IMPRESION(); int main() { int i=0,j=0; dato charge[N]; i=CARGA(charge); /// i es la cantidad de personas que tengo. for (j=0;j<i;j++) { } CREACION(charge,i); ///Llamo a la funcion para crear un txt y le paso el nuevo dato struct y la cantidad de personas ingreadas. IMPRESION(); return 0; } int CARGA(dato charge[N]) { int i=0,j=0,e=0; char letra='a'; charge[i].doc=4; while (i<N) { if (charge[i].doc!=0) { while(letra!='\r') { letra=getche(); charge[i].nombre[j]=letra; j++; } charge[i].nombre[j]='\0'; j=0; letra='a'; while(letra!='\r') { letra=getche(); charge[i].pais[e]=letra; e++; } charge[i].pais[e]='\0'; e=0; letra='a'; i++; } if(charge[i].doc==0) { return i; } } return i; } void CREACION(dato charge[N],int i) { FILE*arch; int j=0; while(j<i) { j++; } } void IMPRESION() { FILE*fd; int doc,i=0; char nombre[50]={0},pais[50]={0}; { i++; } }
La funcion que funciona mal es IMPRESION y no le veo defecto alguno.