Bueno, tengo que hacer un ejercicio en el que se pregunta al usuario el nombre de un archivo de texto y el programa debe abrir dicho archivo y mostrar 25 lineas hasta que se pulse una tecla y mostrar otras 25, asi hasta la marca eof del archivo en si. El problema esta en que al compilarlo me da 0 errores pero al ejecutarlo me da "segmentation fault (core dumped)" dentro de la terminal donde lo ejecuto:
Código:
#include <stdio.h>
#include <string.h>
#define RUTA "/home/miusuario/"
main()
{
FILE* archivo;
char nombre[51]; //El nombre del archivo.
char rutatemp[201]; //La ruta completa del archivo
char linea[501];
int i; //Un contador para imprimir 25 lineas.
printf("Escribe el nombre de archivo para abrirlo\n\n");
gets(nombre);
strcat(rutatemp, RUTA);
strcat(rutatemp, nombre);
archivo = fopen(rutatemp, "rt");
while (! feof(archivo))
{
for (i = 0; i < 25; i++)
{
fgets(linea, 500, archivo);
printf("%s", linea);
}
i = 1;
getchar();
}
fclose(archivo);
}
La verdad no se si es que no se usar alguna funcion bien o que es. Me gustaria si es posible que no me corrigierais el codigo (me gusta intentarlo yo mismo para aprender) sino que me gustaria saber el porque de ese error en este codigo o que funcion es la que me falla y me ayudeis a entenderla. He leido tambien un post aqui mismo en el que se dice que hay funciones que no se deberian usar y yo utilizo aqui pero estoy obligado a ello. Gracias de antemano!!!
PD: Utilizo un curso de C escrito por Nacho Cabanes, si sabeis de alguno que sea mejor que ese os lo agradeceria muchisimo.