Título: Ayuda con este código de archivos Publicado por: ++c en 25 Agosto 2014, 22:49 pm Hola amigos,
tengo un problema con este código basado en archivos y no entiendo porque en esta parte del programa me lee toda la cadena, cuando esperaba solo leyera y me mostrara por pantalla el nombre de la persona y no toda la cadena seguida de nombre, ciudad y edad. Código Este es el código completo: Código
Gracias, un saludo Título: Re: Ayuda con este código de archivos Publicado por: rir3760 en 26 Agosto 2014, 04:09 am El problema se genera por la forma en que guardas los datos en el archivo:
Código Por ejemplo si el nombre es "X", la ciudad "Y" y la edad "5" los datos se envían sin separación alguna como la secuencia "XY5". Para solucionarlo debes enviar cada campo seguido de un avance de linea: Código
Otros errores que debes corregir: * Antes de utilizar la función exit debes incluir el encabezado <stdlib.h>. * No puedes imprimir un entero (la edad) con la función puts: Código En lugar de puts utiliza printf. * Después de leer el ultimo campo de tipo int (de nuevo la edad) debes descartar el resto de la linea. * La condición del bucle de lectura garantiza un iteración de mas, en otras palabras si tienes un registro se trataran de mostrar dos. Para evitarlo debes verificar (por lo menos) el resultado de la lectura del primer campo. Combinado con el punto anterior: Código
Por ultimo debes evitar el uso de magic numbers y las funciones gets y feof. Mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html). Un saludo Título: Re: Ayuda con este código de archivos Publicado por: ++c en 26 Agosto 2014, 21:20 pm Hola rir3760,
pufff que nivel, como te agradezco tu inmejorable explicación. La verdad que más claro y educativo imposible. Saludos master!! Pdata: buen post el que me indicaste, muchas veces tenemos las cosas enfrente de nuestros ojos y nos las vemos o el subsconciente nos juega malas pasadas, jajaja |