есть ошибка, при которой ввод недопустимого значения для логического значения вызывает инфин. зацикливается и не позволяет мне вводить дополнительную информацию

#loops #boolean

Вопрос:

здесь я попытался создать базовый калькулятор, который будет добавлять целые числа столько, сколько захочет пользователь. я столкнулся с проблемой , когда, если я ввожу недопустимое значение для bool, программа запускает циклы бесконечно. хотя это не проблема, если пользователь не вводит недопустимое значение, но было бы неплохо проверить код.

 #include <iostream>
#include <cmath>

using namespace std;



int main ()
{
   // here i set up the code to create a calculator that will add  
  //  as long as the user wants.
    int Num1 ;
    int Num2 ;
    bool Permit = false;
    cout<< "enter first number:"<<endl;
    cin>> Num1;
    cout<< "Do you wish to continue? 1 for yes 0 for no." <<endl;
    cin>> Permit;
    
   // here the loop should run only as long as the bool is true. 

    while (Permit)
    {
        cin>> Num2;
        Num1 = Num2 Num1;
        cout<< "Do you wish to continue? 1 for yes 0 for no." <<endl;
        cin>> Permit;

    }
    cout <<Num1;


    // however if i enter a value other than 0 or 1 , the whole  
    // loop runs infinitely , but doesnt allow me to enter any 
    // info.
    // if i enter any alphabet instead of 0 or 1, the opposite 
    // happens the loop terminates immediately.
}