Pętla do ... while
Ostatnio zmodyfikowano 2011-09-11 12:45
| Bunny Temat założony przez niniejszego użytkownika | Pętla do ... while » 2011-09-11 10:45:57 chodzi o to by w przypadku podania litery program poprosił o nią jeszcze raz a po podaniu liczby by ją rozpisał #include <iostream>using namespace std;
 int main()
 {
 int liczba;
 do
 {
 cin.clear();
 cin.sync();
 cin >> liczba;
 if(...) <------------------
 do
 {
 cout << liczba << endl;
 liczba--;
 } while( liczba >= 0 );
 
 } while( liczba = cin.fail() );
 
 return 0;
 }
dla czego gdy wpiszę w podane miejsce "liczba = cin.good()" to pętla wypisuje tylko podaną liczbę i jeden a po podaniu litery działa dobrze. a gdy wpiszę tam "liczba != cin.fail()" to po podaniu liczby działa dobrze (wypisuje ja) ale przy podaniu litery podaje dużą liczbę i też ją wypisuje :D. dlaczego tak jest? | 
|  | 
| SeaMonster131 | » 2011-09-11 11:26:29 to daj: if( cin.good() ) Czyli: #include <iostream> using namespace std;
 int main()
 {
 int liczba;
 do
 {
 cin.clear();
 cin.sync();
 cin >> liczba;
 if( cin.good() ) <------------------
 do
 {
 cout << liczba << endl;
 liczba--;
 } while( liczba >= 0 );
 
 } while( liczba = cin.fail() );
 
 return 0;
 }
W sumie ten warunek  while( liczba = cin.fail() )  możesz zastąpić samym  while( cin.fail() ) :) | 
|  | 
| Bunny Temat założony przez niniejszego użytkownika | Dzięki SeaMonster131 » 2011-09-11 12:45:25 Dzięki wielkie, coś musiałem pominąć w kursie :P | 
|  | 
| « 1 » |