Arhardable Temat założony przez niniejszego użytkownika |
Poziom 1 Rozdział 9 Zadanie » 2015-08-04 02:57:32 Mój problem polega na tym, że u mnie rozwiązanie zadania wygląda tak: A powinno wyglądać tak jak na stronie http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Obsluga-strumienia-wejsciowego/12 : Liczba pierwsza to: 13.3. Wczytano? 1. Liczba druga to: 0. Wczytano? 0. Liczba trzecia to: 33.22. Wczytano? 1. Oto mój kod źródłowy : #include <iostream> using namespace std; int main() { float liczba1; cin >> liczba1; cin.clear(); cin.sync(); float liczba2; cin >> liczba2; cin.clear(); cin.sync(); float liczba3; cin >> liczba3; cin.clear(); cin.sync(); bool Wczytano = cin.good(); cin.clear(); cin.sync(); cout << " Liczba pierwsza to: " << liczba1 << " Wczytano? " << Wczytano << endl; cout << " Liczba druga to: " << liczba2 << " Wczytano? " << Wczytano << endl; cout << " Liczba trzecia to: " << liczba3 << " Wczytano? " << Wczytano << endl; return 0; }
Nie wiem co robię źle dlatego proszę o wskazówki. Pozdrawiam. |
|
kmlkamilek |
» 2015-08-04 04:00:01 Po pierwsze, w rozdziale wyraźnie pisze, że są to przykładowe dane wyjściowe. Po drugie, metody good() i fail() zwracają wartość na podstawie ostatnio wykonanego wczytywania danych Nie jest to dosłownie napisane w rozdziale, ale przyglądając się przykładom, można się zorientować.
Prześledź przykłady w rozdziale, przeanalizuj własny kod, porównaj i wyciągaj wnioski. |
|
Arhardable Temat założony przez niniejszego użytkownika |
» 2015-08-04 13:17:49 * kmlkamilek Po pierwsze, w rozdziale wyraźnie pisze, że są to przykładowe dane wyjściowe. Po drugie, metody good() i fail() zwracają wartość na podstawie ostatnio wykonanego wczytywania danych Nie jest to dosłownie napisane w rozdziale, ale przyglądając się przykładom, można się zorientować.
Prześledź przykłady w rozdziale, przeanalizuj własny kod, porównaj i wyciągaj wnioski. |
Wiem, że to są przykładowe dane. Podaje te same w programie aby zobaczyć czy wszystko robię dobrze, gdybym dał inne to bym nie miał porównania tak jak w tym przypadku. Kod analizowałem długo i dalej nie wiem co źle robię. To jest mój trzeci dzień nauki więc proszę o wyrozumiałość. Dziękuje ci, że zainteresowałeś się tym tematem, jednakże nie pomogłeś mi. Jeżeli można to proszę o bardziej szczegółową pomoc. ____________________________ Pozdrawiam |
|
xKTN |
» 2015-08-04 13:25:10 Kolega kmlkamilek podał ważną podpowiedź: metody good() i fail() zwracają wartość na podstawie OSTATNIO wykonanego wczytywania danych. Popatrz w swój kod, do której z prób wczytania odnosi się ten fragment? bool Wczytano = cin.good(); cin.clear(); cin.sync();
Bo musisz wiedzieć, że nie sprawdzasz w ten sposób wszystkich prób, jak to powinno być w poprawnie rozwiązanym zadaniu. |
|
Arhardable Temat założony przez niniejszego użytkownika |
» 2015-08-04 14:57:37 Trochę go zedytowałem dodałem nowe parametry, ale niestety dalej piszę wszędzie, że wczytało chociaż przy błędnym wpisaniu powinno wyświetlić 0. Oto kod źródłowy: #include <iostream> using namespace std; int main() { float liczba1, liczba2, liczba3; cin >> liczba1; cin.clear(); cin.sync(); cin >> liczba2; cin.clear(); cin.sync(); cin >> liczba3; cin.clear(); cin.sync(); bool a = cin.good(); cin.clear(); cin.sync(); bool b = cin.good(); cin.clear(); cin.sync(); bool c = cin.good(); cin.clear(); cin.sync(); cout << " Liczba pierwsza to: " << liczba1 << " Wczytano? " << a << endl; cout << " Liczba druga to: " << liczba2 << " Wczytano? " << b << endl; cout << " Liczba trzecia to: " << liczba3 << " Wczytano? " << c << endl; return 0; } _____________________ Pozdrawiam. |
|
BadBullPL |
» 2015-08-04 16:28:43 bool a = cin.good(); cin.clear(); cin.sync(); bool b = cin.good(); cin.clear(); cin.sync(); bool c = cin.good(); cin.clear(); cin.sync(); |
metody good() i fail() zwracają wartość na podstawie OSTATNIO wykonanego wczytywania danych. |
|
|
Braile |
» 2015-08-04 17:02:28 Pamiętaj także, aby strumień jak i flagę błędu czyścić przed każdym wczytaniem danych. |
|
carlosmay |
» 2015-08-04 17:38:14 Wczytujesz zmienna1 i zapisujesz stan nr 1. Wczytujesz zmienna2 i zapisujesz stan nr 2. Wczytujesz zmienna3 i zapisujesz stan nr 3.
Na koniec wypisujesz.
Zmienna1 oraz stan 1 Zmienna2 oraz stan 2 Zmienna3 oraz stan 3 |
|
« 1 » 2 |