Problem z pętlą while

0

Witam!

Mam problem z pętlą while. Posiadam taki oto kod:

void kwadrat()
{
     int a, pole;
     while(
     {
     cout<<"Podaj bok kwadratu: ";
     cin>>a;
     if(a>=48 && a<=57)
     {
        pole = a * a;
        cout<<"Pole kwadratu wynosi: "<<pole<<endl;
     }
     else cout<<"Prosze podac liczbe!";
     }
}

Jest on wycinkiem mojego kalkulatora. I tutaj pojawia się problem. Mianowicie muszę zrobić, żeby wpisywać możnabyło tylko liczby. Nie wiem jaki dać warunek w pętli while, że: Jeżeli if będzie true to while się kończy, a jeżeli false to powtarza.

Dziękuje za pomoc

0
 
void kwadrat()
{
     int a, pole;
     while(true)
     {
     cout<<"Podaj bok kwadratu: ";
     cin>>a;
     if(a>=48 && a<=57)
     {
        pole = a * a;
        cout<<"Pole kwadratu wynosi: "<<pole<<endl;
        break;
     }
     }
}
0

A nie lepiej tak?

 void kwadrat()
{
     int a, pole;
     do
     {
          cout<<"Podaj bok kwadratu: ";
          cin>>a;
          if(a < static_cast<int>('0') || a > static_cast<int>('9'))
         {
             cout<<"Prosze podac liczbe!";
         }
     } 
     while(a < static_cast<int>('0') || a > static_cast<int>('9'));
     pole = a * a;
     cout<<"Pole kwadratu wynosi: "<<pole<<endl;
}
0

Widze urzyles rzutowania... Ok tylko jak wpisze litere to petla zamienia sie w nieskonczona ;p

0

Nie, żebym się czepiał, ale nie powinno być tak?

int pole;
char a;
0
mnbvcX napisał(a)

Nie, żebym się czepiał, ale nie powinno być tak?

int pole;
char a;

Czy ta porada nie rozwiązuje problemu?
Zabezpieczenie przed wpisywaniem liter

1 użytkowników online, w tym zalogowanych: 0, gości: 1