Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Nie działająca funkcja getline(cin, napis) w klasie

Ostatnio zmodyfikowano 2015-03-20 21:23
Autor Wiadomość
Mlorism
Temat założony przez niniejszego użytkownika
Nie działająca funkcja getline(cin, napis) w klasie
» 2015-03-20 20:56:19
Korzystam z code::blocksa. Zacząłem ćwiczyć z klasami i chciałem, aby w trakcie wprowadzania w voidzie danych, była możliwość do stringa wprowadzić napis dłuższy niż jedno słowo, więc skorzystałem ze znanej mi funkcji getline(cin, napis). Funkcja ta mi prawidłowo działa w mainie, ale jako część klasy już nie i jest ignorowana przez program. Co muszę dopisać, aby zadziałało?

C/C++
#include <iostream>
#include <cstdlib>

using namespace std;

class bohater
{
public:
   
    string imie, klasa, poczucie_humoru;
    int wiek;
   
    void stworz_bohatera()
    {
        cout << "Hej! Stworzymy razem bohatera! Opowiedz cos o nim." << endl;
        cout << "Podaj imie: ";
        cin >> imie;
        cout << "Podaj wiek: ";
        cin >> wiek;
        cout << "Podaj klase postaci/zawod: ";
        cin >> klasa;
        cout << "Podaj jakie ma poczucie humoru: ";
        getline( cin, poczucie_humoru );
    }
   
    void pokaz_bohatera()
    { system( "cls" );
        cout << "No dobrze, to teraz podsumujmy:" << endl;
        cout << "Byl sobie " << imie << ", mowiono, ze z niego " << klasa << ". " <<
        endl << "Na karku mial " << wiek << " wiosen, a jego poczucie humoru bylo " << poczucie_humoru << ".";
    }
};

int main()
{
    bohater pierwszy;
    pierwszy.stworz_bohatera();
    pierwszy.pokaz_bohatera();
   
   
    cout << endl;
    return 0;
}
P-128832
Lora
» 2015-03-20 21:15:04
spróbuj użyć funkcji
C/C++
cin.clear();
cin.sync();
przed getline.
P-128833
Mlorism
Temat założony przez niniejszego użytkownika
» 2015-03-20 21:23:48
Dziękuję, zadziałało. :)
P-128835
« 1 »
  Strona 1 z 1