pandorabarks / Agenda

Una agenda para demostrar el uso de estructuras en C. Exclusivamente para propósitos educativos.
MIT License
0 stars 0 forks source link

Unable to properly print or display the contact list on a text file. #1

Closed pandorabarks closed 1 day ago

pandorabarks commented 1 day ago

No es posible imprimir cualquier elemento de la lista apropiadamente. Arroja "Error de segmentación" cuando la lista de contactos contiene información, y por lo tanto, pierde los contactos en memoria de forma permanente.

int guardar()
{
    FILE *f = fopen("contactos.txt", "w");
    if (f == NULL) {
        printf("Error al abrir el archivo\n");
        return 0;
    }

    struct persona *t = head->next;
     while (t != NULL && t != tail){
        if (t->next != NULL)
        {
            fprintf(f, "Nombre: %s\n", t->nombre);
            fprintf(f, "Apellidos: %s\n", t->apellidos);
            fprintf(f, "Teléfono: %s\n", t->telefono);
            fprintf(f, "Email: %s\n\n", t->email);
            t = t->next;
        }
        return 0;
    }

    fclose(f);
    printf("\nAVISO DEL SISTEMA: Contactos guardados exitosamente en contactos.txt\n");
    return 0;

}
pandorabarks commented 1 day ago

No marca más un error de segmentación, sin embargo se necesita más trabajo para solucionar otro issue, la lista solo imprime la ultima persona en ser añadida e ignora las demás.