I am trying to do a modulus operation. I ask the user to input two numbers, since modulus only works with integers, I have a while loop that checks if the inputs are integers. Then the while loop ask the user to re-enter the two numbers. But the while loop keeps on repeating and does not allow the user a chance to re-enter the numbers. What will be the proper to go about doing this?
#include <iostream>
using namespace std;
int Modulus (int, int,struct Calculator);
struct Calculator
{
    int per_numb1, per_numb2;
    int per_Result; };
int main () 
{ 
    Calculator Operation1;
    cout << "\nPlease enter the first number to calculate as a modulus: "; 
    cin >> Operation1.per_numb1; 
    cout << "\nPlease enter the second number to calculate modulus: "; 
    cin >> Operation1.per_numb2; 
while ( !( cin >> Operation1.per_numb1)  ||   !( cin >> Operation1.per_numb2))
{ 
        cout << "\nERROR\nInvalid operation \nThe first number or second number   must be an integer"; 
        cout << "\n\nPlease re-enter the first number to begin Modulus: "; 
        cin >> Operation1.per_numb1;  
        cout << "\nPlease re-enter the second number to begin Modulus: ";
        cin >> Operation1.per_numb2;
}
Operation1.per_Result = Modulus(Operation1.per_numb1, Operation1.per_numb2, Operation1); 
cout << "\nThe result  is: " << Operation1.per_Result << endl;
}
int Modulus (int n1, int n2, struct Calculator)
{
    int Answer; 
    Answer = n1 % n2; 
    return Answer; 
} 
 
     
     
     
    