Hola, miren les queria comentar el siguiente problema.
Estoy probando una funcion para poder importar el texto de un archivo usando FILE.
El codigo con el que probe primero fue.
Código:
#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;
}
}
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"
"Arregle" el problema a medias y eso es lo que me molesto, ya que el codigo quedo asi:
Código:
#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;
}
}
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.
Antes que nada Gracias por leer esto y disculpen las molestias.