Zadanie domowe - kurs c++ nie działa cin.good().
Ostatnio zmodyfikowano 2016-11-23 20:48
niewiemkto Temat założony przez niniejszego użytkownika |
Zadanie domowe - kurs c++ nie działa cin.good(). » 2016-11-23 20:24:53 Witam. Próbuje zrobić zadanie domowe z kursu o treści: 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. Program nie działa mi dobrze najwyraźniej źle korzystam z cin.good(). Czy wie ktoś jak to zrobić by działalo tak jak wynika z treści zadania? Z góry dziękuje za odpowiedż. Oto kod: #include <iostream>
using namespace std; int main() { double a; int b = 2; bool dobrze = cin.good(); do { cout << "Podaj liczbe: "; cin.clear(); cin.sync(); cin >> a; if( dobrze ) { cout << "Podana liczba to: " << a; b++; } } while( b = 2 ); }
|
|
karambaHZP |
» 2016-11-23 20:46:59 Sprawdzenie stanu strumienia dobrze = std::cin.good(); wykonaj dopiero po użyciu operatora >> . |
|
niewiemkto Temat założony przez niniejszego użytkownika |
» 2016-11-23 20:48:59 Czyli jak by to musialo wygladac? Bo nie rozumiem troche. W koncu mi sie udalo #include <iostream>
using namespace std; int main() { double a; int b = 2; bool dobrze = cin.good(); do { cout << "Podaj liczbe: "; cin.clear(); cin.sync(); cin >> a; if( cin.good() ) { cout << "Podana liczba to: " << a << endl; b += 5; } else { cout << "TO NIE JEST POPRAWNA LICZBA!!!" << endl; } } while( b == 2 ); }
|
|
« 1 » |