C++ czyszczenie ekranu i powrót do menu

#include <iostream>
#include <cstdlib>
#include <limits>
using namespace std;

void menu()
{


	cout << "Menu"<< endl<<endl;
	cout << "1: dodawanie"<<endl;
	cout << "2: odejmowanie"<<endl;
	cout << "3: mnozenie" << endl;
	cout << "4: dzielenie" << endl;
	cout << "5: wyjscie" << endl;

}
int main()
{
int wybor;
float a,b,dodawanie,odejmowanie,mnozenie, dzielenie;
menu();
cout << endl;
cout << "Wybor: ";
cin >>wybor;
cin.clear();
cin.sync();
if (wybor==1 || wybor==2 or wybor==3)
{
    cout << "\nPodaj pierwsza liczbe ";
    cin >> a;
    cin.clear();
    cin.sync();
    cout << "Podaj druga liczbe: ";
    cin >> b;
    cin.clear();
    cin.sync();
}
if (wybor==4)
{
    do
    {
    cout << "\nPodaj pierwsza liczbe ";
    cin >> a;
    cin.clear();
    cin.sync();
    }while(a==0);
    do
    {
    cout << "Podaj druga liczbe: ";
    cin >> b;
    cin.clear();
    cin.sync();
    }while(b==0);
}
switch (wybor)
{
	case 1:
		dodawanie = a+b;
		cout << "Wynik: " << dodawanie;
		break;

	case 2:
		odejmowanie = a-b;
		cout << "Wynik: " << odejmowanie;
		break;

	case 3:
		mnozenie = a*b;
		cout << "Wynik: " << mnozenie;
		break;

    case 4:
		dzielenie = a/b;
		cout << "Wynik: " << dzielenie;
		break;

	case 5:
	    cout << "\nBye\n";
	    return 0;
		break;
}
char powrot;
cout << "\n\nq: powrot do menu ";
cin >> powrot;

if(powrot=='q' or powrot=='Q') //druga opcja if((powrot=='q')||(powrot=='Q'))
{
    system ("CLS");
	main(); //main zamiast menu
}
else
cout << "\nNarka\n";


return 0;
}

Bez cin.get(); program nie zadziała do końca. Zobaczysz jego działanie tylko do jakiegoś momentu a nie końca. Uruchamiając program z środowiska pracy czyli za pomocą programu w którym go napisałeś możesz tego nie zobaczyć bo program będzie działał poprawnie(nie wiem czy we wszystkich programach). 

char powrot;

cout << "q: powrot do menu ";

cin >> powrot;

if ((powrot==‘q’)||(powrot==‘Q’))

 

Wystarczy, nie kombinuj.