Lekcja 9
Ostatnio zmodyfikowano 2016-11-13 20:40
neferx |
» 2016-07-11 16:24:52 cin >> zmiennajeden; bool a = cin.good();
Przykładowy bool o nazwie "a". cout << "\nLiczba pierwsza to: " << zmiennajeden << "\nCzy udalo sie wczytac? " << cin.good() << "\nCzy cos nawalilo? " << cin.fail() << endl;
W tym momencie wykonujesz dopiero sprawdzenie cin.good(); zamiast wczytać wynik z bool Analogiczna sytuacja z cin.fail(); |
|
Orenz12 |
» 2016-07-11 18:44:43 Naniosłem poprawki: #include <iostream> using namespace std; int main() { float zmiennajeden; float zmiennadwa; float zmiennatrzy; cout << "Podaj liczbe pierwsza:" << endl; cin >> zmiennajeden; bool a = cin.good(); bool d = cin.fail(); cout << "Podaj liczbe druga:" << endl; cin.clear(); cin.sync(); cin >> zmiennadwa; bool b = cin.good(); bool e = cin.fail(); cout << "Podaj liczbe trzecia:" << endl; cin.clear(); cin.sync(); cin >> zmiennatrzy; bool c = cin.good(); bool f = cin.fail(); cout << "\nLiczba pierwsza to: " << zmiennajeden << "\nCzy udalo sie wczytac? " << a << "\nCzy cos nawalilo? " << d << endl; cout << "\nLiczba druga to: " << zmiennadwa << "\nCzy udalo sie wczytac? " << b << "\nCzy cos nawalilo? " << e << endl; cout << "\nLiczba trzecia to: " << zmiennatrzy << "\nCzy udalo sie wczytac? " << c << "\nCzy cos nawalilo? " << f << endl; return 0; }
Jakieś zastrzeżenia? Nigdzie nie widziałem by ktoś definiował typu bool d = cin.fail(); , ale program działa bez zarzutu. |
|
Dego93 |
» 2016-07-13 06:22:20 #include <iostream>
using namespace std;
float a, b, c; bool valid;
int main() { cin >> a; valid = cin.good(); cout << "Liczba pierwsza to: " << a << ". Wczytano? " << valid << "." << endl; cin.clear(); cin.sync(); cin >> b; valid = cin.good(); cout << "Liczba druga to: " << b << ". Wczytano? " << valid << "." << endl; cin.clear(); cin.sync(); cin >> c; valid = cin.good(); cout << "Liczba trzecia to: " << c << ". Wczytano? " << valid << "." << endl; cin.clear(); cin.sync(); return 0; }
|
|
karambaHZP |
» 2016-07-13 08:28:36 Nigdzie nie widziałem by ktoś definiował typu bool |
To wynika z treści zadania, której nie przeczytał @Dego93 (wskazówka). Niby jak przechować informacje o stanie strumienia? |
|
Dego93 |
» 2016-07-13 12:30:28 @karambaHZP
Przytaczam wskazówkę: Informacje o poprawnym (albo niepoprawnym) wczytaniu danych należy przechować w dodatkowych zmiennych typu bool.
Wskazówkę przeczytałem dokładnie i jak widzisz w kodzie powyżej w zmiennej valid zapisuję stan o poprawnym (bądź nie) wczytaniu danych wynikiem czego jest 1 - true lub 0 - false. |
|
karambaHZP |
» 2016-07-13 14:39:47 Wskazówkę przeczytałem dokładnie |
Całej treści. Wskazówka mówi tylko o zastosowaniu zmiennej typu bool . Wypisanie wszystkich wyników po wczytaniu wszystkich danych od użytkownika. bool isFail = cin.fail(); - przeciwieństwo metody good() |
|
Dego93 |
» 2016-07-13 15:03:47 Zakładam, że chodzi o to: #include <iostream>
using namespace std;
float a, b, c; bool valid1, valid2, valid3;
int main() { cin >> a; valid1 = cin.good(); cin.clear(); cin.sync(); cin >> b; valid2 = cin.good(); cin.clear(); cin.sync(); cin >> c; valid3 = cin.good(); cin.clear(); cin.sync(); cout << "Liczba pierwsza to: " << a << ". Wczytano? " << valid1 << "." << endl; cout << "Liczba druga to: " << b << ". Wczytano? " << valid2 << "." << endl; cout << "Liczba trzecia to: " << c << ". Wczytano? " << valid3 << "." << endl; return 0; }
|
|
SumekQQ |
» 2016-07-21 21:34:51 Witam, nie chce zakładac kolejnego tematu z lekcji 9, więc zapytam. Mój kod źródłowy wygląda tak : #include "stdafx.h" #include <iostream> using namespace std;
int main() { float a, b, c; bool aa, bb, cc; cout << "Podaj liczbe pierwsza" << endl; cin >> a; aa = cin.good(); cin.clear(); cin.ignore( 999, '\n' ); cout << "Podaj liczbe druga" << endl; cin >> b; bb = cin.good(); cin.clear(); cin.ignore( 999, '\n' ); cout << "Podaj liczbe trzecia" << endl; cin >> c; cc = cin.good(); cin.clear(); cin.ignore( 999, '\n' ); cout << "Liczba pierwsza to: " << a << " Wczytano ?" << aa << endl; cout << "Liczba druga to: " << b << " Wczytano ?" << bb << endl; cout << "Liczba trzecia to: " << c << " Wczytano ?" << cc << endl; cin.get(); cin.get(); return 0; }
Na CodeBlocks program dziala bez zarzutu, natomiast na MSViusalStudio dla drugiej liczby wartość nie wynosi 0 tylko np jakies -1.032131e+32. Mógłby mi ktoś to wyjaśnić? |
|
1 « 2 » 3 |