• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Zapis ostatniego elementu na pierwszej pozycji w pliku

VPS Starter Arubacloud
0 głosów
71 wizyt
pytanie zadane 20 kwietnia 2019 w C i C++ przez Neeq Obywatel (1,930 p.)
zamknięte 20 kwietnia 2019 przez Neeq

Witam, nie mogę slokalizować co jest nie tak w kodzie. Napisałem funkcje dodawania nowymch elementow do listy(elementy to filmy zapisane w strukturze), gdy chcemy wyjsc z programu on zaisuje obecnie znajdujace się w liscie elementy. Do funkcji która zapisuje wysyłam wskaznik na pierwszy element. Później wskaźnik zmienia się na pole next ktore przechowuje wskaznik kolejnego elementu listy.

Struktura: 


struct movie{
    struct movie *myAddress;

    int id;
    char movieName[MAX_MOVIE_NAME_LENGHT];
    short int yearOfProduction;
    char directorName[MAX_DIRECTOR_NAME];
    char typeOfMovie[MAX_MOVIE_NAME_LENGHT];
    short int amountOfCopies;
    short int amountOfRented;

    struct movie *next;
    struct movie *prev;
};

Funkcja zapisu: 

void saveDataToFile(struct movie *node)
{
    FILE *file;

    for(int i=0; i<amountOfData; i++)
    {
        if((file = fopen("movies.dat","ab")) == NULL)
        {
            fputs("Nie mozna otworzyc pliku i zapisac danych w pliku movies.dat \n",stderr);
            exit(1);
        }

        fwrite(node,sizeof(struct movie),1,file);
        printf("pointerZapisu: %p \n",node);

        //if(node != NULL)
        node = node->next;
        printf("pointerNext: %p \n",node);
    }

    fclose(file);
    printf("Zapisano.");
}

Funkcja zapisuje elementy w pliku jednak ostatni element listy zawsze jest na pierwszej pozycji, reszta elementów zapisuje się poprawnie nie mam pojęcia co jest grane :O proszę o pomoc i dzięki :D

komentarz zamknięcia: błąd znaleziony
komentarz 20 kwietnia 2019 przez Neeq Obywatel (1,930 p.)
Ok, znalazłem bardzo głupi błąd czywiście było to otweranie tego samego pliku w funkcji która zapisuje tyle razy ile jest elementów, if powinien być przd for...

Podobne pytania

0 głosów
0 odpowiedzi 558 wizyt
0 głosów
2 odpowiedzi 489 wizyt
pytanie zadane 14 lipca 2020 w C i C++ przez Kxmil Nowicjusz (220 p.)
+1 głos
0 odpowiedzi 116 wizyt
pytanie zadane 12 czerwca 2020 w C i C++ przez amtrax Dyskutant (9,630 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...