Малко помощ за задача на C++

confiscate

Registered
Здравейте ,

Искам да проверя дали съм въвел число и ако не съм да ми позволява пак да въвеждам символ от клавиатура , но нещо бъркам и започва един безкраен цикъл.

Ето кода:
Код:
#include <iostream>
#include <cctype>
using namespace std;
int main () {
 int a;
 do {
     cout<<"Vuvedete a: ";
     cin>>a;
     }
     while (!=isdigit(a));              
    
    system("Pause");
    return 0; 
}

Благодаря за помощта !

Поздрави
 
Не трябва ли да е

#include <iostream>
#include <cctype>
using namespace std;
int main () {
int a;
do {
cout<<"Vuvedete a: ";
cin>>a;
}
while (!isdigit(a)); //<<<тук

system("Pause");
return 0;
}
 
Да , но не е това проблемът... :cry: Без да искам съм копирал един от многото неуспешни опити , които се опитвах да тествам.
 
Код:
double read_input()
{
    double input = -1;
    bool valid= false;
    do
    {
        cout << "Vyvedi chislo a: " << flush;
        cin >> input;
        if (cin.good())
        {
            valid = true;
        }
        else
        {
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(),'\n');
            cout << "Tova ne e chislo... vyvedete a: " << endl;
        }
    } while (!valid);
    system("PAUSE");
    return (input);
}
int main()
{
double x = read_input();
}
 

Back
Горе