c++ check if cin got the wrong type

#include <iostream>
#include <limits>

int main() {
    int number;
    std::cout << "Enter a number: ";

    if (!(std::cin >> number)) {
        std::cin.clear();
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        std::cout << "Invalid input. Please enter a valid number." << std::endl;
    } else {
        std::cout << "You entered: " << number << std::endl;
    }

    return 0;
}