elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  C - Como hacer que habra archivos de texto y pregunte la ruta del archivo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: C - Como hacer que habra archivos de texto y pregunte la ruta del archivo?  (Leído 2,207 veces)
n1sen

Desconectado Desconectado

Mensajes: 122



Ver Perfil
C - Como hacer que habra archivos de texto y pregunte la ruta del archivo?
« en: 28 Julio 2017, 20:48 pm »

Hola, he estado practicando un poco de C, y empeze programando un programa que lee archivos de texto, aca esta el codigo, bastante simple la verdad:
Código
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4.  
  5. char aux;
  6. FILE *f; //Se declara una variable de tipo fichero
  7.  
  8. f = fopen("Fichero.txt","r"); //Abre el fichero
  9. if(f == NULL){ //Comprueba si se ha abierto el fichero
  10. printf("No se ha podido abrir el fichero");
  11. exit(1);
  12. }
  13.  
  14. while(aux != EOF){ //Al terminar de leer un fichero genera un carcter especial llamado EOF (EndOfFile)
  15. aux = fgetc(f);
  16. printf("%c", aux); //Imprime en pantalla el fichero
  17. }
  18. printf("\n");
  19.  
  20. fclose(f); //Cierra el fichero
  21.  
  22. system("pause");
  23. }
Sin embargo, en la funcion fopen yo quiero que pregunte la ruta del archivo, ya lo he intentado, lo he intentado con strings pero no funciona ya que al parecer fopen no lee variables, hay una alternativa a esa funcion?
Gracias.


« Última modificación: 28 Julio 2017, 21:13 pm por n1sen » En línea

null
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: C - Como hacer que habra archivos de texto y pregunte la ruta del archivo?
« Respuesta #1 en: 28 Julio 2017, 20:50 pm »

fopen si lee variables, muéstrame tu código que hayas intentado para poder corregir el error


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
n1sen

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: C - Como hacer que habra archivos de texto y pregunte la ruta del archivo?
« Respuesta #2 en: 28 Julio 2017, 20:54 pm »

Puede que el fallo sea medio tonto, pero es que simpre me complico lo de abrir archivos
Código
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4.  
  5. char aux;
  6. char rtd[255]; //String de la ruta del archivo
  7. FILE *f; //Se declara una variable de tipo fichero
  8.  
  9. printf("Introduce la ruta del archivo (Sin contrabarra, solo admite /):\n");
  10. fgets(rtd,255,stdin);
  11.  
  12. f = fopen("%s","r",rtd); //Abre el fichero
  13. if(f == NULL){ //Comprueba si se ha abierto el fichero
  14. printf("No se ha podido abrir el fichero");
  15. exit(1);
  16. }
  17.  
  18. while(aux != EOF){ //Al terminar de leer un fichero genera un carcter especial llamado EOF (EndOfFile)
  19. aux = fgetc(f);
  20. printf("%c", aux); //Imprime en pantalla el fichero
  21. }
  22. printf("\n");
  23.  
  24. fclose(f); //Cierra el fichero
  25.  
  26. system("pause");
  27. }
En línea

null
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: C - Como hacer que habra archivos de texto y pregunte la ruta del archivo?
« Respuesta #3 en: 28 Julio 2017, 21:10 pm »

Código
  1. fopen("%s","r",rtd)

??? XD fopen no es fgets XD


por otro lado, fgets si no me equivoco captura el salto de linea por lo que el archivo nunca será correcto si no tiene un \n al final

usa en lugar de fgets

Código
  1. scanf("%254s",rtd);

esto para que solo capture 254 caracteres (evitar un overflow y que tenga su \0 al final)

y cambia fopen a

Código
  1. fopen(rtd,"r")

otros detalles

-no uses exit, usa return
-main debe siempre terminar en return 0 para indicar que todo fue bien
« Última modificación: 28 Julio 2017, 21:12 pm por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
n1sen

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: C - Como hacer que habra archivos de texto y pregunte la ruta del archivo?
« Respuesta #4 en: 28 Julio 2017, 21:20 pm »

El error que cometi era bastante estupido segun mi opinion, pero, como dije no me llevo muy bien con esas funciones xD
En línea

null
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines