Помогите отладить программу на С++
если срабатывает условие cin.good() == false (если например ввожу буквы вместо цифр), программа пишет ERROR!!, что впринципе правильно и тут же выходит из цикла и завершается, что неправильно
помогите пожалуйста исправить это
если срабатывает условие cin.good() == false (если например ввожу буквы вместо цифр), программа пишет ERROR!!, что впринципе правильно и тут же выходит из цикла и завершается, что неправильно
помогите пожалуйста исправить это
Код:
#include "stdafx.h"
using namespace std;
bool err = false;
double x, y;
char op;
double calc (double x, char op, double y);
void vvod_vivod();
int main()
{
vvod_vivod();
}
void vvod_vivod()
{
char rep;
do
{
cout << "press math operation: ";
cin >> x >> op >> y;
if ( cin.good() == false )
err = true;
if (err == 0)
cout << "Otvet: " << calc(x,op,y) << endl;
else
cout << "ERROR!! \n";
cout << "Repeat? [y/n] ";
cin >> rep;
}
while (rep == 'Y' || rep == 'y');
}
double calc (double x, char op, double y)
{
switch (op)
{
case '+':
return x+y; break;
case '-':
return x-y; break;
case '*':
return x*y; break;
case '/':
if (y == 0){err = true; break;}
else { return x/y; break;}
}
}