[Lekcja 17 ] Zadanie domowe
Ostatnio zmodyfikowano 2016-05-23 09:45
| lukhol Temat założony przez niniejszego użytkownika | [Lekcja 17 ] Zadanie domowe » 2014-10-22 21:38:20 Cześć. Do napisania jest program przyjmujący tylko liczby. W przypadku wpisania innego znaku ponownie prosi o podanie liczby. #include <iostream>using namespace std;
 
 int wczytajLiczbe()
 {
 int liczbaDwa;
 for( int i = 0; i < 100; i++ )
 {
 cin >> liczbaDwa;
 if( liczbaDwa != 0 ) break;
 
 }
 
 return liczbaDwa;
 }
 
 int main()
 {
 cout << "Podaj liczbe: ";
 int liczba = wczytajLiczbe();
 cout << "Podales liczbe: " << liczba << std::endl;
 return 0;
 }
 
Nie rozumiem czemu przy każdym kolejnym wykonaniu pętli for program nie czeka na wpisanie nowej wartości zmiennej liczbaDwa. | 
|  | 
| pw1602 | » 2014-10-22 22:12:09 Zamiast korzystać z pętli  for  użyj  do...while . | 
|  | 
| Rashmistrz | » 2014-10-22 22:52:06 @pw1602 To niczego nie zmieni.To niczego na razie nie zmieni. ________________________________________ | Nie rozumiem czemu przy każdym kolejnym wykonaniu pętli for
 program nie czeka na wpisanie
 nowej wartości zmiennej liczbaDwa.
 | 
 Możliwe że podałeś zero, bądź "zapchałeś" bufor tekstem/znakiem. Co do drugiej możliwości, odsyłam cię tu:Obsługa strumienia wejściowego ________________________________________ EDIT:  Z tego co widzę jak na razie rozwiązanie tego podpunktu zadania nie idzie Ci dobrze... EDIT2: for( int i = 0; i < 100; i++ ) Do tego podpunktu nie potrzeba  liczb i inkrementacji! Wystarczą  operatory logiczne i zmienne typu  logicznego... i oczywiście, będzie ci łatwiej  wykonać zadanie używając pętli do...while. | 
|  | 
| pw1602 | » 2014-10-22 23:23:03 Mi właśnie chodziło o to, aby użył  do...while  by sam mógł również znaleźć problem. | 
|  | 
| Rashmistrz | » 2014-10-22 23:47:22 @pw1602 | Mi właśnie chodziło o to, aby użył do...while by sam mógł również znaleźć problem.
 | 
 Ok. A ja się na początek zacząłem martwić  o to że nie użył on metod  .good(); i bądź lub  .fail();  do sprawdzenia  poprawności wczytania. | 
|  | 
| Memento96 | » 2014-10-23 20:53:44 Bo tego jeszcze w kursie nie miał? Jak ma stosować coś o czym nie ma pojęcia jak działa? | 
|  | 
| lukhol Temat założony przez niniejszego użytkownika | a » 2014-10-23 21:01:02 Dalej nie uporałem się z tym problemem, zmiana pętli na do while i tak nic poza uproszczeniem kodu w tym przypadku nie da. Ma ktoś jakieś pomysły czemu cin nie działa w tej pętli ? | 
|  | 
| Memento96 | » 2014-10-23 21:26:32 Ponieważ  w pętli do...while nie prosisz ponownie o podani a odrazu przypisujsz, nie wyjdzie do maina bo cały czas pętla trwa ;) | 
|  | 
| « 1 »  2 3 |