Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/03/2013, 14:42
carbon
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 13 años
Puntos: 35
Respuesta: Problema con ficheros en C

No es que va por el else, el problema es que la función tratarFichero() nunca llega a ejecutarse, porque fgets está retornando NULL. Al parecer tienes el archivo lista.txt vacío, ya que si lo llenas con algo funciona bien.

Te optimicé un poco el código. Si abris un fichero de modo "w" (write) siempre va a existir, ya que de lo contrario lo crea automáticamente.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void tratarFichero(char *cadena_puntero)
  5. {
  6.     FILE *fichero2;
  7.    
  8.     if ((fichero2 = fopen(cadena_puntero, "w")) != NULL) {
  9.         printf("tratar fichero\n");
  10.     }
  11. }
  12.  
  13. int main()
  14. {
  15.     char *cadena_puntero, cadena[100];
  16.     FILE *fichero;
  17.    
  18.     if ((fichero = fopen("lista.txt", "r")) == NULL) {
  19.         printf("El fichero no existe\n");
  20.         return 0;
  21.     } else {
  22.         while ((fgets(cadena, 100, fichero)) != NULL) {
  23.             cadena_puntero = cadena;
  24.             tratarFichero(cadena_puntero);
  25.         }
  26.     }
  27. }

Espero que te sirva.