Идея этого кода в c ++ состоит в том, чтобы вычислить сумму всех введенных чисел. Когда пользователь вводит 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;
}