...un getche();...
Cita de: "Jevi"...un getche();...supongo que habra sido un error pero es getch(); no getche(); y otra cosa para usar getch() debes incluir un #include <conio.h> al principio del codigo (que supongo k tambien se sabe, pero por si alguien no lo sabe)
He depurado tu programa, parando la ejecución en la línia 34Código: Textif((fp=fopen("alumnos.txt", "r"))== NULL) veo que como el fichero alumnos.txt no existe, te escribe el mensaje Código: Textprintf("El fichero alumnos.txt no existe\n"); y luego salta a final del programa con return -1;Si pones un getche(); después de cada printf, el programa esperará a presiones una tecla y te dará tiempo a visualizar los mensajes. Eso, o aprender a leer ultrarápidamente Un saludo.
He estado mirando tu codigo, y tu problema es k cuando es menor de 3 años, se sale del primer bucle, pero como tienes otro while mas abajo que controla el fin de fichero pues vuelve a empezar. Otra cosa que e visto es k si introduces unos datos en los que la persona tiene mas de 3 años no guarda los datos en el fichero, y te vuelve a pedir apellidos y demas, no creo k sea eso lo que pretendes.Lo de controlar el fin de fichero no te hace falta a la hora de escribir, solo cuando kieras leer el fichero. En vez de controlar si es fin de fichero, haz algo asi:Código: Text printf("¿Quiere introducir otra persona? (s/n):"); }while(getchar!='n'); No se si es algo asi lo k pretendes de todas formas espero servirte de ayuda
Es que no entiendo para que sirve la condicion de que sea menor de 3 años... que quieres exactamente que haga cuando es menor? En el codigo original no es k no salga del bucle, es k sale del primer while, pero no del segundo (el de feof). ¿podrias especificar lo k pretendes al controlar lo de los tres años?
Hola otra vez, yo siempre k trabajo con ficheros, lo hago controlando el numero de registros y haciendolo por acceso directo, pòr eso no estoy muy puesto en lo de controlar el fin de fichero y demas. Me e dado cuenta k el problema de k se repite tu bucle esta en uno de los while -> while((car = fgetc(fp)) != '\n') debido a este bucle se repite siempre, kitande este bucle y el if k le sigue -> (if(isspace (car) == 0)) ya funciona bien en lo k a no repetir los bucles se refiere, pero claro supongo k en tu caso estas dos sentencias seran necesarias, y la verdad es k no se para k sirven. Espero k al menos te sirva de algo...
Siento no serte mas util, pero como ya e dixo, yo suelo trabajar con ficheros d acceso directo(fwrite,fread,fseek y demas) y clarro lo mismo k estas haciendo tu yo lo haria con un planteamiento totalmente distinto, controlando el numero de registros y demas, a ver si hay suerte y ayuda alguien mas... un saludo. P.D: Me parecio leer por ahi k eras andaluza... yo tb lo soy