Konstruktor jednoargumentowy wczytujący plik...

0

"(...)Konstruktor ma otworzyć ten plik, wczytać dane z kolejnych wierszy do
dynamicznej listy jednokierunkowej, a na koniec plik zamknąć. Klasa zawiera też dwie
metody: podaj_pierwszy i podaj_następny. (...)"

Wszystko fajnie pięknie, tylko w zadaniu nie jest określone czy klasa ma mieć zdefiniowane atrubyty (każda dana z pliku ma mieć swojego inta czy chara), bo inaczej nie mam pojęcia jak to wczytać do listy, oto co wymyśliłem, proszę o radę czy dobry kierunek:

(plik zawiera dane mail, imie, nazwisko)

  #include <stdio.h>
    class klasa{
     
     //konstruktor
    klasa(plik.txt){
       
        FILE* stream;
       
            if( (stream = fopen( "plik.txt", "r" )) == NULL )
                printf("Nie ma takiego pliku!\n");
            else
                printf("Plik zostal poprawnie otwarty!\n\n");   
                   
    // wczytywanie do listy jednokierunkowej 
            while (!feof( stream )) {

                if (glowa == NULL){
                    glowa = wsk = (class klasa*)malloc(sizeof(class klasa));
                }
                else {
                    wsk->nast = (class klasa*)malloc(sizeof(class klasa));
                    wsk = wsk->nast;
                }
            } 
    wsk->nast = NULL;         
        }
    }

czy da rade jakos inaczej wczytac dane z pliku do listy jednokierunkowej niz zrobienie:

fscanf(stream, "%s %s %s \n", wsk->mail, wsk->imie, wsk->nazwisko);

i zadeklarowanie tych danych w klasie?

dzięki za pomoc

0

Co dokładnie rozumiesz pod pojęciem tych "atrybutów"?

W piekielnie niezdrowy sposób mieszasz c i c++. Jeśli już korzystasz z klas, czyli ewidentnie sugerujesz ten drugi język, to do zarządzania pamięcią używamy new i delete, a do obsługi plików: klasy fstream. Tym bardziej, że malloc nie wywoła konstruktora właśnie tworzonego obiektu. Obiekty nie mają prawa działać przy użyciu funkcji alokujących z c.

Zgrupowane 3 informacje najłatwiej by Ci było opakować w klasę i dopiero używać w liście.
Lista jednokierunkowa powinna być oddzielną klasą i posiadać funkcję pozwalającą dodawać nowe elementy.
Nie wiadomo też w ogóle czym konkretnie ma być Twoja klasa, ani czym jest wsk.

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