int reference = 0; cin >> reference; while (reference > 500000 || reference < 400000) { cout << "Invalid choice, try again:"; cin >> reference; if (cin.fail()) { cin.clear(); int reference = 0; cin >> reference; } } will check for integer out of range but not non numeric