Cin.ignore() svuota il buffer del stdin, cin.get() resta in attesa di un carattere, in sostanza dici al programma di aspettare a chiudersi perche li devi passare qualcosa.
string str = "prego";
string::iterator it;
for(it = str.begin(); it!= str.end(); ++it)
cout << *it;
sembriamo due defficenti con sti saluti ma va bene lo stesso.