Почему я получаю бесконечный цикл, если я ввожу букву, а не число? [Дубликат]

На этот вопрос уже есть ответ:

Бесконечный цикл с cin при вводе строки, когда ожидается число 4 ответа

Я пишу этот код для домашнего задания (только начинаю C ++, так что, пожалуйста, не спешите). Мы только начали сегодня, пока-пока и для петель. Программа работает нормально, за исключением того, что если вы вводите букву, когда программа запрашивает целое число, она зацикливается бесконечно. Что происходит? (Код ниже) *** РЕДАКТИРОВАТЬ: Чтобы уточнить, часть, которая зацикливается: «Введенный вами номер является отрицательным. Пожалуйста, введите положительное число, чтобы продолжить». Но пользователю не дают возможности ввести другой номер. Это просто продолжает печатать это.

    #include <iostream>
using namespace std;

int main ( )
{
    //define variables
    int num1, num2, total;
    char answer1;

    do
    {
        //user enters a number
        cout << "\nPlease enter a positive number and press Enter: \n";
        cin >&g,t; num1;

        //check that the given num1 value is positive
        while (num1 < 0)
        {
            cout << "The number you entered is negative.\nPlease enter a positive number to continue.\n";
            cin >> num1;
        }

        cout << endl;

        //add the sum of 1 through num1 value
        num2 = 1;
        total = 0;
        while (num1 >= num2)
        {
            total = total + num2;
            num2 ++;
        }

        //tell the user the sum
        cout << "The total of all the integers\nfrom 1 to " << num1 << " is: \n";
        cout << total;

        //ask if the user wants to try again
        cout << "\n\nWould you like to try again with a new number?\nEnter y for yes or n for no.\n";
        cin >> answer1;
    } while (answer1 == 'y');   

    cout << endl;
    return 0;
}

Ответы на вопрос(4)

Ваш ответ на вопрос