Konstruktor wczytujący plik - proste..., ale?

kkk123

Użytkownik
Dołączył
Kwiecień 24, 2012
Posty
1
Witam,

"(...)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)

Kod:
 #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:

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

i zadeklarowanie tych danych w klasie?

dzięki za pomoc! :)
 

harbinger

Użytkownik
Dołączył
Styczeń 10, 2012
Posty
91
dziwne podejście do problemu...
znalazłem swój kodzik sprzed 3 lat jak bawiłem się w C++
http://nefarious.bad.mn/ksiazka_telefoniczna.tar.gz
łapaj, obczajaj, poprawiaj... bo to, co napisałeś woła o pomstę do nieba

poza tym.. jeśli masz zaprojektować klasę, to korzystaj z dobrodziejstw C++

[added]
aha.. wystarczy Ci jak obczaisz klasę CBook zapisaną w plikach book.cc oraz book.h
kod nie jest idealny, ale miał po prostu działać ;) i działał
 
Do góry Bottom