Tworzenie listy wczytujące dane z pliku
Ostatnio zmodyfikowano 2016-12-18 15:24
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. #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; }
. |
|
« 1 » |