Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tworzenie listy wczytujące dane z pliku

Ostatnio zmodyfikowano 2016-12-18 15:24
Autor Wiadomość
locf
Temat założony przez niniejszego użytkownika
Tworzenie listy wczytujące dane z pliku
» 2016-12-18 15:24:47
Witam wszystkich,
mam stworzyć listę, w której elementy będą wczytywane z pliku. Ja wczytuję listę uczniów z ich numerami telefonów. Plik ma nazwę "uczniowie.txt." i zawartość taką:
aaaaaa
123
bbbbb
145
cccc
355
dddddddd
131
eeeeeeee
350
fffffff
252
ggggggggg
2302

To jest program, który napisałem. Nie wiem co nie działa, bo nie mogę utworzyć listy. Będę wdzięczny za pomoc.
C/C++
#include <iostream>
#include <fstream>

using namespace std;

struct Uczniowie {
    int nr_tel;
    string imie;
    Uczniowie * nast;
};

Uczniowie * tworzListe( Uczniowie *& glowa, string imieUcznia, int telUcznia ) {
    Uczniowie * obecny, * ogon;
    obecny = glowa;
   
    while( obecny ) {
        ogon = obecny;
        obecny = new Uczniowie;
        obecny->imie = imieUcznia;
        obecny->nr_tel = telUcznia;
        obecny->nast = NULL;
       
        if( ogon == NULL ) {
            glowa = obecny;
        } else {
            ogon->nast = obecny;
        }
    }
}

void drukujListe( Uczniowie * glowa ) {
    Uczniowie * obecny = NULL;
    obecny = glowa;
   
    if( obecny != NULL ) {
        cout << "\nDrukuje liste: \n";
        while( obecny != NULL ) {
            cout << obecny->imie << " " << obecny->nr_tel << "; ";
            obecny = obecny->nast;
            cout << endl;
        }
    } else {
        cout << "\nLista jest pusta.";
    }
}

int main()
{
    Uczniowie * glowa = NULL;
    int telUcznia = 0;
    string imieUcznia, plik;
    ifstream fin;
   
    cout << "Podaj nazwe pliku ";
    cin >> plik;
    fin.open( plik.c_str() );
    if( !fin.good() ) {
        cout << "Problem z plikiem";
        return 1;
    }
   
    while( !fin.eof() ) {
        fin >> imieUcznia;
        fin >> telUcznia;
        tworzListe( glowa, imieUcznia, telUcznia );
    }
    if( fin.eof() ) {
        cout << "Koniec pliku.\n";
    }
    fin.close();
   
    if( glowa != NULL ) {
        drukujListe( glowa );
    } else {
        cout << "Nie udalo sie utworzyc listy.\n";
    }
   
    return 0;
}
.
P-155134
« 1 »
  Strona 1 z 1