Czyszczenie danych z bufora cin

0

Wprowadzam jakieś dane do bufora (cin), wykonuję sobie pętlę while np. przez 10 sekund, i teraz jeśli ktoś podczas tych 10 sekund coś wpisze w konsoli to chciałbym to zignorować, a wczytać dopiero dane które zostaną wprowadzone w odpowiednim miejscu.
Bo teraz to działa tak, wszystko co jest wprowadzone podczas działania pętli wędruje do bufora. cin.ignore() i cin.clear() nie czyści mi tego.

while(1){
cout << "Podaj polecenie" << endl;
cin.ignore();
cin >> polecenie;

	if(polecenie = "run"){
		//wykonuj cos przez 10 sekund
	}
	if(...){
	
	}
	...
}
0
string cmd;
while((cout<<"Podaj polecenie: ")&&(cin>>cmd))
  {
   if(cmd=="run")
     {
      //...
     }
    //...
   else if(cmd=="exit") return 0;
   while(cin.get()!='\n') {}
  }
0

Dzięki @13_Dragon ale to nie do końca pracuje tak jak chce. Potrzebuję w momencie wywołania

cin >>cmd; 

mieć kompletnie czysty bufor, czy komenda wprowadzona w trakcie pracy zawiera błędne dane czy też poprawne bez znaczenia. Chcę zignorować to co zostanie wprowadzone w momencie kiedy coś się wykonuje.

0
string cmd;
while((cout<<"Podaj polecenie: ")&&(getline(cin,cmd)))
  {
   if(cmd=="run")
     {
      //...
     }
    //...
   else if(cmd=="exit") return 0;
   //while(cin.get()!='\n') {}
  }

dodanie znacznika <code class="cpp"> - @furious programming

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