String a klasa

Odpowiedz Nowy wątek
2011-08-04 15:25
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");
 
              }

Programista uczy się całe życie....
edytowany 1x, ostatnio: madmike, 2011-08-06 13:30

Pozostało 580 znaków

2011-08-04 15:36
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).


edytowany 1x, ostatnio: byku_guzio, 2011-08-04 15:36

Pozostało 580 znaków

2011-08-04 15:37
0

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


Programista uczy się całe życie....

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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