Problem z pętlą while

Odpowiedz Nowy wątek
2011-08-05 10:39
diesellas
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

edytowany 1x, ostatnio: madmike, 2016-12-13 18:26

Pozostało 580 znaków

2011-08-05 11:00
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;
     }
     }
}

Pozostało 580 znaków

2011-08-05 11:23
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;
}

Pozostało 580 znaków

2011-08-05 11:29
diesellas
0

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

Pozostało 580 znaków

2011-08-05 11:45
0

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

int pole;
char a;

Not Found
The requested URL /wypasiona_sygnaturka.txt was not found in this brain.
-----
Human/1.0.00 (Earth) Server at Poland Port 65535

Pozostało 580 znaków

2011-08-05 11:51
Ja
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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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