[c] zapis listy jednokierunkowej

0

Witam.
mam liste na której pliki wyświetlam tak:

element showElements(element *head){
  printf("\nIndex\tImie\tNazwisko\ttelefon\tnr.domu\n");
  while(head != NULL){
    printf("%i\t%s\t%s\t\t%s\t%i\n",
        head->position,
        head->imie,
        head->nazwisko,
        head->plec,
        head->wiek,
        (unsigned int)head->this,
        (unsigned int)head->next );
    head = head->next;
  }
}

i wszystko jest ok..
a gdy chcę je zapisać na przykład tak:

 FILE *fp =fopen("baza.txt", "w");
    while(head != NULL){
        fputs(head->imiefp);
        head = head->next;
    }
    fclose (fp);

zapisuje tylko pierwsze imie, na reszcie są jakieś "ślaczki".
Domyślam sie, że chodzi o wskaźniki więc zrobiłem:

char a[20];
 strcpy(a,head->imie);

i zapisywałem a.. ale też lipton..
Moze ktos mógłby poratować??

0

a czy to imiefp konczy sie nullowym znakiem '\0' ?

0
fputs(head->imie,fp);

mała literówka

0

jak powyżej ktoś wspomniał...

  1. czy imiefp kończy się znakiem '\0'?
  2. wypróbuj funkcję fprintf()

1 użytkowników online, w tym zalogowanych: 0, gości: 1