Klasy, metoda pobierania i wyświetlania
Ostatnio zmodyfikowano 2016-03-08 21:43
Zdziszek Temat założony przez niniejszego użytkownika |
Klasy, metoda pobierania i wyświetlania » 2016-03-08 20:41:51 Witam, mam problem z metodą, która pobiera dane obiektu i je wyświetla: struct sOcena { string nazwa_przedmiotu; float ocena; int ECTS; };
class cStudent { private: string m_ImieNazwisko; char m_plec; int m_nrIndeksu; int m_ECTS; vector < sOcena > m_oceny; public: cStudent(); cStudent( const cStudent & s ); cStudent( string ImieNazwisko, int nrIndeksu ); void pobierz(); void wyswietl(); string imieNazwisko(); vector < sOcena > oceny( string nazwa, int rosnaca ); float srednia(); void wczytaj( fstream & plik ); void zapisz( fstream & plik ); void dodaj_ocene( sOcena & o ); };
void cStudent::pobierz() { cout << "Podaj imie i nazwisko: "; getline( cin, m_ImieNazwisko ); cin.ignore(); }
void cStudent::wyswietl() { cout << m_ImieNazwisko << endl; }
int main() { list < cStudent > studenci; char a; while( 1 ) { cout << "1. Dodaj studenta." << endl; cout << "2. Wyswietl studentow." << endl; cin >> a; switch( a ) { case '1': { cStudent s1; s1.pobierz(); studenci.push_back( s1 ); break; } case '2': { for( auto v = studenci.begin(); v != studenci.end(); ++v ) { ( * v ).wyswietl(); cout << endl; } } } } system( "pause" ); return 0; }
Problem polega na tym, że, po wpisaniu imienia i nazwiska wyświetla mi się takie coś: 1. Dodaj studenta. 2. Wyswietl studenta. 1 Podaj imie i nazwisko: Jan Kowalski 1. Dodaj studenta. 2. Wyswietl studenta. 1. Dodaj studenta. 2. Wyswietl studenta. 1. Dodaj studenta. 2. Wyswietl studenta. 1. Dodaj studenta. 2. Wyswietl studenta. 1. Dodaj studenta. 2. Wyswietl studenta. 1. Dodaj studenta. 2. Wyswietl studenta. 1. Dodaj studenta. 2. Wyswietl studenta. 1. Dodaj studenta. 2. Wyswietl studenta. 1. Dodaj studenta. 2. Wyswietl studenta. 1. Dodaj studenta. 2. Wyswietl studenta.
A jak wybiorę wyświetlanie to nie wyświetla, w czym jest problem?Bo nie mam pojęcia. |
|
Kaikso |
» 2016-03-08 21:21:39 A po co to cin.ignore(); ? |
|
Zdziszek Temat założony przez niniejszego użytkownika |
» 2016-03-08 21:22:51 Bez tego nie pobiera imienia i nazwiska |
|
Kaikso |
» 2016-03-08 21:32:28 Daj to przed wczytaniem tekstu, to powinno zadziałać. |
|
Zdziszek Temat założony przez niniejszego użytkownika |
» 2016-03-08 21:43:31 Faktycznie, zadziałało, dzięki wielkie=] Zawsze cin.ignore() dawałem po wczytaniu i wszystko było ok, a w klasach jakoś nie bardzo, nie sądziłem, że tu jest błąd :P |
|
« 1 » |