c++ cin accept only numbers

#include <iostream>
#include <limits>

int main() {
    int number;

    std::cout << "Enter a number: ";
    while (!(std::cin >> number)) {
        std::cout << "Invalid input. Please enter a number: ";
        std::cin.clear();
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }

    std::cout << "You entered: " << number << std::endl;

    return 0;
}