Rozdział 15 - zadanie 1 z pracy domowej
Ostatnio zmodyfikowano 2013-05-08 22:19
Gucio3012 Temat założony przez niniejszego użytkownika |
Rozdział 15 - zadanie 1 z pracy domowej » 2013-05-08 21:28:51 Witam! Może jest już późno i nie kontaktuje ale nie wiem czemu we "while" musiałem zastosować negacje, żeby uzyskać pożądany efekt(tzn. wpisanie liczby ma kończyć program, a innego znaku zataczać pętle), a nie zasnę bez odpowiedzi. Ogólnie rozumiem to tak, że jeśli wartość do zmiennej "liczba" zostanie wczytana prawidłowo(tzn. będzie to liczba rzeczywista) to cin.good() = true, czyli 1. Nie wiem, jest już późno, więc może zapomniałem jakiejś podstawowej rzeczy :(. Treść zadania to: Napisz program, który wczyta liczbę, a następnie wypisze ją na ekranie. Zabezpiecz przed wczytaniem nieprawidłowej liczby. Wykorzystaj do tego celu wiedzę z jednego z poprzednich rozdziałów. Sposób działania programu: 1. Podaj liczbę 2. Jeżeli błąd, wróć do kroku 1. 3. Wypisz liczbę, która została podana. Mój kod to: #include <iostream> using namespace std; int main() { double liczba; do { cin.clear(); cin.sync(); cout << "Podaj liczbe." << endl; cin >> liczba; } while( !cin.good() ); cout << "Podales liczbe: " << liczba << endl; cout << "Koniec"; return 0; }
Proszę o pomoc :D |
|
MrPoxipol |
» 2013-05-08 22:01:30 Po prostu program będzie pobierał liczbę od użytkownika, dopóki ta nie będzie zgodna z wybranym typem. Ot cała filozofia ;) |
|
Gucio3012 Temat założony przez niniejszego użytkownika |
» 2013-05-08 22:19:01 Chyba się nie zrozumieliśmy, sam program działa prawie dobrze, zastanawia mnie tylko dlaczego jeśli wpisuje liczbę rzeczywistą, gdy while( cin.good() ) to cały czas pyta o nowa liczbę, a gdy wpisze np. literę "d", która nie kwalifikuje się do zmiennej "liczba" to jest wszystko dobrze. Woops! Późno już, taki głupi błąd, pętla kończy się kiedy warunek w while zwróci false, a nie true... Przepraszam za zbędny temat, można usunąć... |
|
« 1 » |