Я пытаюсь написать цикл так, чтобы я запрашивал у пользователя ввод до 4 раз, у меня проблема в том, что если пользователь вводит что-то отличное от ожидаемого двойного значения (для оценки), мне нужно вывести сообщениечто это был неправильный тип.Я хочу вывести это сообщение и при этом запросить и получить еще 4 попытки оценки.
#include <iostream>
using namespace std;
int
main ()
{
double estimate;
double increment;
int numRows;
const int minRows = 1;
const int maxRows = 100;
const double minInc = 0.1;
const double maxInc = 10.0;
const double minEst = -10.0;
const double maxEst = 10.0;
string inputFile;
int numTries = 0;
while (numTries < 4)
{
numTries++;
cout << "Enter initial estimate of root : ";
cin >> estimate;
if (!(cin.fail()))
{
if ((estimate >= minEst) && (estimate <= maxEst))
{
break;
}
else
{
if (numTries == 4)
{
cout << "ERROR: Exceeded max number of tries entering data" << endl;
return 0;
}
cout << "" << endl;
cout << "Value you entered was not in range\n";
cout << fixed << setprecision(3) << minEst << " <= initial estimate <= " << maxEst << endl;
}
}
else
{
cout << "The initial estimate was not a number\n";
cin.clear();
}
}
}
Результат этого кода:
Enter initial estimate of root : y
The initial estimate was not a number
Enter initial estimate of root : The initial estimate was not a number
Enter initial estimate of root : The initial estimate was not a number
Enter initial estimate of root : The initial estimate was not a number
Я хочу:
Enter initial estimate of root : y
The initial estimate was not a number
Enter initial estimate of root :
И пользователь должен ввести следующее значение!