getline zjada pierwszy znak

0

Próbuje napisać program który pobierze od użytkownika frazę składającą się z kilku słów, potem próbuje wyświetlić pobraną frazę i okazuje się że za każdym razem nie ma pierwszego znaku, co robię nie tak?

mój kod:

#include<iostream>
#include<string>

using namespace std;

int main()
{
	string fraza;

	cout<<"Podaj fraze:";
	cin.ignore();

	getline(cin,fraza);

	cout<<endl<<endl;
	cout<<"Twoja fraza: "<<fraza<<endl;



	system("pause");
	return 0;
}

Czy robię coś żle?

5

cin.ignore();

https://www.cplusplus.com/reference/istream/istream/ignore/

Przecież sam każesz pierwszy znak ignorować o_O

0

@Shalom: ok, dzięki

3
cin.ignore();

Prawdopodobnie chciałeś coś w stylu

cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n')

aby zignorować wszystkie obecne znaki, ale do tego lepiej użyć std::ws

getline(cin >> std::ws, fraza);

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