String a klasa

0

Witam, napisałem program, który wyświetla nazwisko oraz wiek danej osoby. W pewnym momencie prosi o podanie swojego. Jeżeli wpisze same nazwisko/imie to działa bezproblemowo. Jeżeli jednak wpiszę swoje imię i nazwisko zaczyna wariować. Oto kod:

 /***********
blabla

***********/


#include <iostream>
#include <string>
using namespace std;

class osoba{
      private:
              string nazwisko;
              int wiek;
              public:
                     void zapamietaj(string nazwa, int lata);
                     void wypisz();
                         
      };
void osoba::zapamietaj(string nazwa, int lata)
{
     nazwisko = nazwa;
     wiek = lata;
     
     }
    void osoba::wypisz()
     {
          cout << nazwisko << ", " << wiek << endl;
          
          }
          
          //*********************************//
          
          int main()
          {
              osoba student,nauczyciel;
              student.zapamietaj("Grzegorz Jakistam", 23);
              nauczyciel.zapamietaj("Leslaw Kowalski", 42);
              student.wypisz();
              nauczyciel.wypisz();
              
          string nazwisko;
          int wiek;
          cout << "Podaj swoje nazwisko: ";
          cin >> nazwisko;
          cout << "Podaj swoj wiek: ";
          cin >> wiek;
          student.zapamietaj(nazwisko, wiek);
          student.wypisz();              
              system("pause");
              
              
              }
0

Nie zaczyna wariować, tylko zachowuje się tak jak mu kazałeś. cin >> whatever wczytuje do napotkania spacji. Możesz użyć getline(cin, nazwisko).

0

Ah getline:)
Dziękuję za odpowiedź :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1