C++ помогите исправить ошибку

программирование C++ ошибка

Вот код:

int main() {
int x=0 ,y=0;
bool flag = false;
do {
std::cout << "x= " ;
std::cin >> x ;
if ( !std::cin.good()) {
std::cout << "Error!" << std::endl ;
std::cin.clear() ; //Сбрасываем флаг ошибки
std::cin.ignore(255, '\n') ; //Очищаем буфер
}
else flag = true;
} while (flag == false);
flag = false;
do {
std::cout << "y= " << std::endl ;
std::cin >> y;
if ( !std::cin.good() ) {
std::cout << "Error!";
std::cin.clear(); //Сбрасываем флаг ошибки
std::cin.ignore(255, '\n'); //Очищаем буфер
}
else flag = true;
} while (flag == false);
std::cout << "x + y = "<< x + y <<std::endl;
return 0;
}

это самый простой калькулятор для счета целых чисел.

У меня не работает проверка чисел. Помогите найти ошибки пожалуйста =)

Примечание:
ошибка в том что проверка идет не правильно, если я пишу сразу правильное число, например 1 или 2, то программа идет правильно и спрашивает следующее число. А если я напишу например 1,5 или 0,3 , то она пишет "Error! x= " как и должна, только вот потом вводи хоть правильное хоть нет все равно заново вводить Х. Но если потом ввести неправильное число то пишет "Error! x=" , а если правильное то просто "x= " и все, так до бесконечности!

Примечание:
Ну в общем я решил заново написать используя твой пример. Все работает! =)
А на счет моего, то что он у тебя пошел я не удивлен, я над этим кодом несколько часов возился так и не нашел ошибки, возможно из-за того что ее просто нет.
Использую Visual C++ 2010 Express.
Ответы:
Опиши ощибку: зацикливается, не компилируется и т.п. Или проверка работает не корректно?
Я предлагаю более простой вариант:
std::cout<<"x = "; std::cin>>x;
while (!flag) {
flag = std::cin.good();
if (!flag) {
 std::cout<<"\nERROR!  ";
 std::cin.clear();
}
}
Кстати я запихнул твой код в компилятор и у меня все нормально работает


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.