¿Cómo verificar si el número entero de entrada no flota?

Quiero verificar si la entrada es válida, pero cuando ejecuto este código, veo que solo verifica la entrada para los caracteres. Si ingreso un número flotante, lo tomará y lo usaré como entero sin parte fraccionaria.

#inclide <iostream>
using namespace std;
...
int n;
cout << "Your input is: "<<endl;
cin >> n;
while (cin.fail()) {
    cout << "Error. Number of elements must be integer. Try again: " << endl;
    cin.clear();
    cin.ignore(256, '\n');  
    cin >> n;
}
...        
      `

Entonces, ¿cómo hacer que este código vea si la entrada es flotante?

Respuestas a la pregunta(3)

Su respuesta a la pregunta