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.
 

