Prova 'n po' così, a me va.

codice:
#include <iostream>
#include <string>

using namespace std;

int main()
{
	int c;
	string s;
	
	while (1)
	{
		cout << "Insert 1 o 2: " << endl;

		if(!(cin >> c)) {
			cout << "scelta errata, riprova" << endl;
			cin.clear();
			while( cin.peek() != '\n' ) cin.ignore();
		}
		else if (c == 1 || c == 2) {
			while( cin.peek() != '\n' ) cin.ignore();
			cout << "scelta esatta" << endl << "Inserisci la stringa: " << endl;
			getline(cin,s);

			while( cin.peek() != '\n' ) cin.ignore();
			cout << "Hai inserito: "<< s<< endl;
		}

		cout << endl << endl;
	}

	return 0;
}