[Lekcja 9] Sprawdzenie zadania.
Ostatnio zmodyfikowano 2011-10-12 20:10
kamilr Temat założony przez niniejszego użytkownika |
[Lekcja 9] Sprawdzenie zadania. » 2011-10-12 18:47:33 Witam. Wczoraj zacząłem kurs i wszystko rozumiałem i wszystkie zadania wykonywałem poprawnie, aż do tego.
#include <iostream> using namespace std;
int main() { float a; float b; float c; cout << "Podaj liczbe rzeczywista: "; cin >> a; cin.clear(); cin.sync(); cout << "Podaj druga liczbe rzeczywista: "; cin >> b; cin.clear(); cin.sync(); cout << "Podaj trzecia liczbe rzeczywista: "; cin >> c; cin.clear(); cin.sync(); cout << "A teraz przypomnijmy:" << endl; cout << "Liczba pierwsza to: " << a << " Wczytano? " << cin.good() << endl; cout << "Liczba druga to: " << b << " Wczytano? " << cin.good() << endl; cout << "Liczba trzecoa to: " << c << " Wczytano? " << cin.good() << endl; return 0; }
Wydaje mi się, że jest dobrze tylko nie rozumiem tej funkcji bool? Jak ją zastosować? |
|
doman89 |
» 2011-10-12 19:35:43 Nie jestem profesjonalnym programistą ale spróbuję pomóc. Funkcja BOOL przechowuje wartości TRUE i FALSE. Więc jeżeli zdefiniujesz zmienna BOOL to możesz zrobić coś takiego: int main() { bool CzySukces; // cały kod programu. CzySukces = cin.good(); // przed czyszczeniem strumienia; // reszta kodu programu }
Wtedy zmienna BOOL jeżeli strumień podany do zmiennej int jest np. napisem to zmienna BOOL przybierze wartość FALSE, jeżeli do zmiennej int wpiszesz liczbę całkowitą wtedy zostanie przypiasne TRUE. // edit Dlatego w Twoim programie przy opcji czy wczytano pokazuje Ci błędne dane. Zrób sobie trzy zmienne BOOL i każdej przypisz konkretny strumień od odpowiedniej zmiennej. Wtedy będziesz miał właściwą odpowiedź. Ty masz 3x tylko cin.good() - kompilator nie wie o który strumień Ci chodzi więc wypisuje ostatni który ma w pamięci. |
|
DejaVu |
» 2011-10-12 20:01:16 1. Strumień jest jeden, a nie kilka.
2. BOOL nie jest funkcją.
3. O ile mnie pamięć nie myli to zadanie jest gdzieś na forum rozwiązane, więc jeżeli już masz potrzebę weryfikacji to warto skorzystać z tego co już jest. |
|
SeaMonster131 |
» 2011-10-12 20:09:45 |
|
kamilr Temat założony przez niniejszego użytkownika |
» 2011-10-12 20:10:51 Dzięki, ale już sobie poradziłem. :)
Napisałem tak:
#include <iostream>
using namespace std; int main() { float a, b, c; cout << "Podaj liczbe pierwsza: "; cin >> a; bool b_a = cin.good(); cin.clear(); cin.sync(); cout << "Podaj liczbe druga: "; cin >> b; bool b_b = cin.good(); cin.clear(); cin.sync(); cout << "Podaj liczbe trzecia: "; cin >> c; bool b_c = cin.good(); cin.clear(); cin.sync(); cout << "Liczba a = " << a << " Wczytano? " << b_a << endl; cout << "Liczba b = " << b << " Wczytano? " << b_b << endl; cout << "Liczba c = " << c << " Wczytano? " << b_c << endl; return 0; } |
|
« 1 » |