getline w pętli

0

Używam getline w pętli ale działa jak należy tylko przy pierwszym jej obiegu. To znaczy że jeśli do strinu z klawiatury przy pomocy getline wpisze jakieś zdanie to przy następnym razie już się nie da go zmienić ponieważ program nie daje możliwości wpisania niczego z klawiatury do stringu. Jak rozwiązać ten problem?

Chcę zrobić tak żeby można było zmieniać string w trakcie uruchomienia programu, wpisując jakieś zdanie z klawiatury.

0

sin.sync() lub cin.cler()

1

Chodzi o to, że getline wczytuje sobie wszystkie znaki, prócz znaku końca wiersza. Ten cały czas pozostaje w buforze przez co kolejny getline od razu się kończy no i mamy taką pętlę :)

Prócz tego co napisał kolega, możesz użyć cin.ignore(1,'\n')

0

jeśli dobrze zrozumiałem to chodzi o coś takiego:

 
#include <iostream>

char tab[256];

using namespace std;
int main()
{
	for(;;)
	{
	        cout << "pisz\n";
		cin.getline(tab,255);
		cout << tab << endl;
	}
	return 0;
}

i nie dostrzegam opisanego problemu

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