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#include <stdio.h>
#include <string.h>
void tratarFichero(char *cadena_puntero)
{
FILE *fichero2;
if ((fichero2
= fopen(cadena_puntero
, "w")) != NULL
) { }
}
int main()
{
char *cadena_puntero, cadena[100];
FILE *fichero;
if ((fichero
= fopen("lista.txt", "r")) == NULL
) { printf("El fichero no existe\n"); return 0;
} else {
while ((fgets(cadena
, 100, fichero
)) != NULL
) { cadena_puntero = cadena;
tratarFichero(cadena_puntero);
}
}
}
Espero que te sirva.