Generalmente se da cuando cargo un string y luego quiero imprimirlo, no lo imprime, o imprime uno solo y no los otros tres. Realice un codigo simple para que vean de que se trata:
Código:
typedef struct {
    char detalle[300];
    char sentencia[20];
    }funciones;
int main()
{
    funciones f;
    FILE* fichero;
    fichero = fopen("stdio_h.txt", "w");
    printf("escribi\n");
    scanf("%[^\n]", &f.detalle);
    scanf("% [^\n]", &f.sentencia);
    fwrite(&f, sizeof(funciones), 1, fichero);
    fclose(fichero);
    system("clear");
    fichero = fopen("stdio_h.txt", "r");
    fread(&f, sizeof(funciones), 1, fichero);
    printf("%s", f.detalle);
    printf("%s", f.sentencia);
    fclose(fichero);
    return 0;
}
Por ejemplo este codigo solo imprime lo que guarde en f.detalle, y lo de f.sentencia no lo imprime y finaliza el programa en consola.
Yo supongo que es un problema con el buffer, pero al estar en Ubuntu no puedo hacer uso de fflush(stdin);
Puede que limpie el buffer manualmente con este codigo:
Código:
void limpiar_buffer(){
    int c;
    do {
        c = getchar;
        }while (c != '\n' && c != EOF);
    return;}*/
/*void cargar_funcion();
char selec_libreria();
void ver_funciones();Pero igual el programa falla, es mas parece que nunca sale de esa funcion/bucle, aunque el codigo lo saque de google.
Espero que puedan ayudarme, ya que necesito hacer un programa en C con archivos y demas.
Tambien acepto sugerencias de otros IDES.


 
  




 Autor
 Autor
		


 En línea
									En línea
								




