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

getline(cin, string)

Ostatnio zmodyfikowano 2020-11-08 17:04
Autor Wiadomość
tsutsumu
Temat założony przez niniejszego użytkownika
getline(cin, string)
» 2020-11-08 16:58:40
aby zrozumiec najlepiej problem trzeba to sobie wyswietlic, ale pokrotce. gdy wczytuje dane przy pierwszym wywolaniu nie ma problemow, ale gdy chce juz zapisac dla drugiego obiektu dane to pomija mi linie getline i przechodzi od razu do kolejnego cina wypisujac kolejne informacje a potem przy wyswietlnieniu daje wartosc 0.

C/C++
#include <iostream>

using namespace std;
class Samochod
{ public:
    string marka;
    int rocznik;
    int przebieg;
   
    void wczytaj()
    { cout << "kreator marki" << endl;
        cout << "Podaj marke samochodu: ";
        getline( cin, marka );
        cout << "Podaj rocznik samochodu: ";
        bool prawda;
        do
        {
            cin >> rocznik;
            prawda = cin.good();
            if( prawda == false )
            { cin.clear();
                cin.sync();
                cout << "podales nieprawidlowa wartosc, sprobuj raz jeszcze: ";
            } //if
        } while( prawda == false );
       
       
        cout << "Podaj przebieg samochodu: ";
        bool prawda1;
        do
        {
            cin >> przebieg;
            prawda1 = cin.good();
            if( prawda1 == false )
            { cin.clear();
                cin.sync();
                cout << "podales nieprawidlowa wartosc, sprobuj raz jeszcze: ";
            } //if
        } while( prawda1 == false );
       
    }
    void wypisz()
    {
        cout << "marka samochodu: " << marka << endl;
        cout << "rocznik samochodu: " << rocznik << endl;
        cout << "przebieg samochodu: " << przebieg << endl;
       
    }
};
int main()
{
    Samochod s1;
    s1.wczytaj();
    s1.wypisz();
    Samochod s2;
    s2.wczytaj();
    s2.wypisz();
    return 0;
}
P-177698
tsutsumu
Temat założony przez niniejszego użytkownika
» 2020-11-08 17:04:41
nie wiem jak usunac temat wiec jedynmie podam sam sobie rozwiazanie :P

wycyzscilem bufor przed getline i wystarczylo.
P-177699
« 1 »
  Strona 1 z 1