Идея этого кода на С++ состоит в том, чтобы вычислить сумму всех введенных чисел. Когда пользователь вводит 0, программа должна остановиться. Эта часть кода работает так, как я предполагал, но я хотел бы включить вариант, который распознает, что был введен символ, отличный от числа с плавающей запятой, игнорирует его при расчете и позволяет пользователю продолжать вводить числа с плавающей запятой. На данный момент ввод чего-либо, кроме числа с плавающей запятой, останавливает программу.
Я знаю, что есть условие «if (!(cin >> numb))», я пытался разобрать его в разных местах кода, но не могу понять, как заставить программу игнорировать эти недопустимые входные данные. Буду очень благодарен за любую помощь.
#include <iostream>
#include <stdlib.h>
using namespace std;
float numb; float sum=0;
int main()
{
cout << "This app calculates the sum of all entered numbers." << endl;
cout << "To stop the program, enter 0." << endl << endl;
cout << "Enter the first number: ";
cin >> numb;
while(true)
{
sum += numb;
if (numb!=0)
{
cout << "Sum equals: " << sum << endl << endl;
cout << "Enter another number: ";
cin >> numb;
}
else
{
cout << "Sum equals: " << sum << endl << endl;
cout << "Entered 0." << endl;
cout << "Press Enter to terminate the app." << endl;
exit(0);
}
}
return 0;
}