Mich wunderts ehrlich gesagt dass noch keiner sich über "using namespace std;" beschwert hat. 
Mit Try-Catch
Code:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int n;
cin >> str;
try {
n = stoi(str);
cout << "Zahl ist: " << n << endl;
}
catch (const invalid_argument&) {
cout << "Keine Zahl. Eingabe ist: " << str << endl;
}
catch (const out_of_range&) {
cout << "Zahl ist nicht in range: " << str << endl;
}
/*cin.ignore(numeric_limits<streamsize>::max(), '\n');
cin.get();*/
return 0;
}
Leange