
segmentation fault en mi programa
Publicado por Zikut0 (4 intervenciones) el 29/11/2014 00:43:31
Buenas a todos, me he registrado para pedir ayuda porque ya no se a quien acudir y no puedo permitirme un profesor por temas economicos. El caso es que voy aprendiendo como puedo y hay veces como esta que hecho de menos un profesor.
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:
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. Gracias de antemano!!!
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#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. Gracias de antemano!!!
Valora esta pregunta


0