Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Firos en 10 Abril 2011, 18:38 pm



Título: Manejo de ficheros: Me da el error al abrir el fichero, por que?
Publicado por: Firos en 10 Abril 2011, 18:38 pm
Buenas.

He estado intentando abrir archivos en C pero no lo consigo. Lo hago con los ficheros en el mismo directorio que el programa. Creo que debería funcionar pero no :\ nunca llega a abrirlo.

No me da error ni nada, simplemente cuando llega la hora de abrir el fichero lo da como NULL y me devuelve el error.

A ver si alguien me puede ayudar y me dice por qué. Gracias de antemano.

Un saludo.

Código
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char **argv)
  4. {
  5. FILE *fichero;
  6. int letra;
  7.  
  8. if((fichero=fopen("origen.txt","r"))==NULL){
  9. printf("No se puede abrir el fichero\n");
  10. return -1;
  11. }
  12.  
  13. printf("Contenido del fichero:\n");
  14. letra=getc(fichero);
  15.  
  16. while(feof(fichero)==0){
  17. printf("%d",letra);
  18. letra=getc(fichero);
  19. }
  20. if(fclose(fichero)!=0){
  21. printf("Error al cerrar el fichero\n");
  22. }
  23. }


Título: Re: Manejo de ficheros: Me da el error al abrir el fichero, por que?
Publicado por: Leber en 10 Abril 2011, 23:40 pm
Una manera de ver que ocurre sería comprobar el valor de la variable errno, y printearla con strerror(). Así veras que esta pasando.

Saludos!


Título: Re: Manejo de ficheros: Me da el error al abrir el fichero, por que?
Publicado por: Firos en 11 Abril 2011, 16:15 pm
Buenas.

Ya he conseguido saber qué pasaba. Resulta que al compilarlo con el IDE los archivos los lee desde la carpeta Debug que se crea junto con el proyecto.

Si hubiese probado de la misma forma solo que a la hora de abrir el archivo le ponemos en el modo "ar", crear si no existe y leer, se habría creado el archivo y habría funcionado despues sin problemas.


Asi que nada, simplemente era eso, el archivo debía estar en "Debug" y no en la carpeta raiz del proyecto.


Un saludo.