Estoy probando una funcion para poder importar el texto de un archivo usando FILE.
El codigo con el que probe primero fue.
Código:
Bueno con ese codigo no tuve problemas al compilar, solo que cuando ejecutaba el programa y probaba la funcion me decia: "línea 2: 6591 Fallo de segmentación"#include <stdio.h> #include <string.h> char *Abrir_fc(char* archivo) { char carpeta[512]; sprintf(carpeta, "Objetos/%s.sct", archivo); FILE *f; printf("Archivo: %s\n", carpeta); f = fopen(carpeta,"rb"); if (f == NULL) { return ""; } else { char *Importado = " "; char cad[512]; int suma = 0, t; printf("aca no hay error\n"); for (suma=0; suma < 32000; suma++){ sprintf(cad, ""); fgets(cad, 8, f); t = strlen(cad); suma+= t; sprintf(Importado, "%s%s", Importado, cad); } fclose(f); return Importado; } }
"Arregle" el problema a medias y eso es lo que me molesto, ya que el codigo quedo asi:
Código:
Como ven en vez de usar "char *" utilize un "char [32000]". pero la verdad no me gusto para nada, quisiera saber que estoy haciendo mal.#include <stdio.h> #include <string.h> char *importar_dato(char *, char *); char *Abrir_fc(char*); char *Abrir_fc(char* archivo) { char carpeta[512]; sprintf(carpeta, "Objetos/%s.sct", archivo); FILE *f; printf("Archivo: %s\n", carpeta); f = fopen(carpeta,"rb"); if (f == NULL) { return ""; } else { char Importado[32000]; char cad[512]; int suma = 0, t; printf("aca no hay error\n"); for (suma=0; suma < 32000; suma++){ sprintf(cad, ""); fgets(cad, 8, f); t = strlen(cad); suma+= t; sprintf(Importado, "%s%s", Importado, cad); } fclose(f); return Importado; } }
Antes que nada Gracias por leer esto y disculpen las molestias.