Я пишу код, который принимает количество ввода от пользователя для пяти единиц в компании - PullRequest
0 голосов
/ 03 февраля 2019

Моя проблема в том, что когда пользователь вводит десятичное значение для количества одного из элементов, программа автоматически завершается.С другой стороны, мне нужно отобразить сообщение, информирующее пользователя о том, что он допустил ошибку, и дать ему возможность повторить попытку.

Я пытался использовать cin.fail() безуспешно.

 cout<< "\nEnter number of Whizbangs: ";
 cin>> WhizbangsAmt;
 //This screens out all the negative numbers
 while(true)
 {
     if(WhizbangsAmt < 0)
     {
         cout<< "Number is negative!\n";
         cout<< "Enter number of Whizbangs: ";
         cin>> WhizbangsAmt;
     }
     else
     {
         break;
     }
 }

1 Ответ

0 голосов
/ 03 февраля 2019

Код, который вы разместили, непонятен.Попробуйте использовать функцию для чтения целых чисел вместо использования функции std::cin.Используя unsigned int, вы можете выбрать первый бит целого числа, поэтому вы выбираете алгебраический знак.

unsigned int readInt(std::istream& stream) {
    /*
     * Function to get integers, that are entered by the user
     */
    unsigned int input;
    stream >> input;
    return input;            
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...