[C con Clase] Problema al leer lineas de fichero texto
Ariel Romero
aromero en cenatav.co.cu
Vie Oct 19 17:50:33 CEST 2007
Hola a todos:
Soy nuevo en C. Estoy haciendo una funcion que dada la direccion de un
fichero lo abra y devuelva en un puntero a char el texto de este
fichero. Lo hice pero no lo hace bien. Me pueden ayudar para saber que
hice mal ?
Aqui esta el codigo:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <errno.h>
#include <string.h>
#include <ctype.h>
char* getStringCadFromFile(char* fileName){
FILE *fp1;
char line[BUFSIZ];
char *c, *stringCad;
fp1 = fopen(fileName, "r");
if (fp1 == NULL){
perror("Error al abrir el archivo \n");
exit (EXIT_FAILURE);
}
stringCad = malloc(sizeof(char*));
do{
c = fgets(line, BUFSIZ, fp1); /* Obtiene una linea del
archivo */
if (c != NULL){
stringCad = realloc(stringCad,
((sizeof(char*))*(strlen(line)+1)));
strcat(stringCad, line);
}
} while (c != NULL); /* Se repite hasta encontrar NULL */
fclose(fp1);
return stringCad;
}
Despues en el main ...
int main(int argc, char **argv) {
char* stringCad = getStringCadFromFile("test.txt");
return EXIT_SUCCESS;
}
Pero no me saca el texto del fichero, lo que hace es mas o menos poner
algunas palabras desordenadas del texto y ya.
No entiendo por qué, supongo que es algo de direcciones de memoria y
punteros que no lo estoy haciendo bien.
Espero me pueda ayudar.
Saludos
Ariel
Más información sobre la lista de distribución Cconclase