void Interfejs::doPliku() { ofstream strumien("out.txt"); if(!strumien.good()) { cerr << "Blad: Nie udalo sie zapisac pliku wynikowego"; return; } strumien << 1 << ' ' << listaOpt.size() << ' '; for(list<Proces*>::iterator it= listaOpt.begin(); it != listaOpt.end(); ++it) { Proces * wsk = *it; strumien << wsk->ID << ' '; } strumien << maxCzas; strumien.close(); }
///pozwala na odczytywanie danych z pliku void KontynentZPasmemGorskim::odczyt_z_pliku(ifstream& plik) { if(plik) { string linia; getline(plik, linia); stringstream strumien(linia); strumien >> nazwa; panstwa.clear(); ///< czyszczenie wczesniej dodanych obiektow liczba_panstw = 0; ///< po wyczyszczeniu nie ma panstw pasma.clear(); liczba_pasm = 0; ///wczytywanie danych z pliku while(1) { string line; getline(plik,line); stringstream linia(line); if(line[0]=='#') ///< znak specjalny, ktory oznacza koniec wczytywania { break; } if(line[0]=='@') ///< znak specjalny, ktory oznacza koniec wczytywania panstw, a rozpoczyna wczytywanie pasm { string line; getline(plik,line); stringstream linia(line); ///< odczytywana jest cala linia Pasmo_gorskie* nowe_pasmo=new Pasmo_gorskie("pasmo",0); ///< tworzenie nowego pasma, do ktorego zaraz beda wpisane dane z odczytywanego pliku nowe_pasmo->odczyt_z_pliku(linia); this->dodaj_pasmo(nowe_pasmo); ///< pasmo, ktore wlasnie zostalo pobrane z pliku, dodajemy do odpowiedniego kontynentu continue; } if(line == "") continue; Panstwo* nowe_panstwo= new Panstwo("panstwo ", 0, 0); ///< wczytywanie danych dla panstwa nowe_panstwo->odczyt_z_pliku(linia); this->dodaj_panstwo(nowe_panstwo); ///<dodanie panstwa do kontynentu } } else