getline( cin, zmienna) vs, getline( cin>>ws,zmienna) main a metoda

0
 
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

class dane_osobowe
	{
		public:
		string imie;
		string nazwisko;
		string nr_tel;
		
		void wprowadz()
		{
			cout<<"Podaj Imie "; cin>>imie;
			cout<<endl<<"Podaj nazwisko "; cin>>nazwisko;
			cout<<endl<<"Podaj nr tel ";
			//getline( cin, nr_tel);
			getline(cin>>ws,nr_tel);
		
			 
		}
				
		void zapisz()
		{
			fstream plik; //zmienna plik
			plik.open("dane_osobowe.txt", ios::out | ios::app);
			plik<<imie<<endl;
			plik<<nazwisko<<endl;
			plik<<nr_tel<<endl;
			plik.close();
		}
	};
	
//------------------------------------------------------------------------------------------	
int main(int argc, char** argv) 
{
	
	dane_osobowe patryk;
	patryk.wprowadz();
	patryk.zapisz();
	/*
    string wyraz;
    cout << "Podaj tekst: ";
    getline( cin, wyraz );
    cout << "Wprowadziles: \"" << wyraz << "\"" << endl;
    */
	return 0;
}

Moje pytanie dlaczego getline( cin, nr_tel) w funkcji main działa poprawnie natomiast w metodze void wprowadz() muszę użyć getline( cin>>ws,nr_tel) ?

2

Ponieważ w buforze strumienia został enter od poprzedniego wprowadzenia.

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