Hola, si pones cualquier cadena e imprimes rutatemp, te salen unos caracteres raros al principio:
Fill block of memory
Sets the first num bytes of the block of memory pointed by ptr to the specified value (interpreted as an unsigned char).
En concreto tienes que poner esto para inicializar esa zona de memoria en cero:
Otra forma de hacerlo sin usar memset es:
También deberías controlar la entrada con la funciones fgets + sscanf.
Además debes mirar si el archivo se ha abierto, si no te dará el segmentation fault. Con un simple if lo puedes comprobar:
Sé que no querías código pero la mejor manera es ejemplificando, la programación es aprender de los errores, si alguien te puede sacar de estos comederos de cabeza mejor.
Un saludo.
Código [Seleccionar]
Escribe el nombre de archivo para abrirlo
hola
H♦/home/miusuario/hola
Process returned 255 (0xFF) execution time : 8.799 s
Press any key to continue.
, quizás eso al pasarselo a fopen o a alguna función es lo que te está fallando. ¿cómo lo arreglo? pues inicializando todo el arreglo a 0 con memset (o con la función strcopy que te indica el compañero rir3760 en el siguiente post al mío).Código (cpp) [Seleccionar]
void * memset ( void * ptr, int value, size_t num );
Fill block of memory
Sets the first num bytes of the block of memory pointed by ptr to the specified value (interpreted as an unsigned char).
En concreto tienes que poner esto para inicializar esa zona de memoria en cero:
Código (cpp) [Seleccionar]
memset(rutatemp, 0, 51);
Otra forma de hacerlo sin usar memset es:
Código (cpp) [Seleccionar]
char rutatemp[201]; //La ruta completa del archivo
rutatemp[0] = '\0';
También deberías controlar la entrada con la funciones fgets + sscanf.
Además debes mirar si el archivo se ha abierto, si no te dará el segmentation fault. Con un simple if lo puedes comprobar:
Código (cpp) [Seleccionar]
archivo = fopen(rutatemp, "rt");
if(archivo)
// Lo que quieras hacer con el archivo
else
printf("Error al abrir el archivo");
Sé que no querías código pero la mejor manera es ejemplificando, la programación es aprender de los errores, si alguien te puede sacar de estos comederos de cabeza mejor.
Un saludo.