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