P01R08 - co złego w kodzie cin.
Ostatnio zmodyfikowano 2019-11-24 11:25
KazikGajek Temat założony przez niniejszego użytkownika |
P01R08 - co złego w kodzie cin. » 2019-11-22 23:06:55 { float a; float b; float c; bool aczyblad = cin.fail(); bool bczyblad = cin.fail(); bool cczyblad = cin.fail(); cout << "Podaj pierwsza liczbe:" << endl; cin >> a; cin.clear(); cout << "Podaj druga liczbe" << endl; cin >> b; cin.clear(); cout << "Podaj trzecia liczbe" << endl; cin >> c; cin.clear(); cout << "Twoje liczby to:" << endl; cout << a << " Czy blad? " << aczyblad << endl; cout << b << " Czy blad? " << bczyblad << endl; cout << c << " Czy blad? " << cczyblad << endl; return 0; }
Po skompilowaniu i wpisaniu za a bądź b bądź c litery albo innego znaku który nie jest liczbą program ignoruje wszystkie dalsze instrukcje, przechodzi do wypisania koncowych liczb i zwraca 0 tam gdzie nie była wprowadzona jeszcze wartość, dlaczego tak się dzieje? |
|
pekfos |
» 2019-11-22 23:38:11 |
|
KazikGajek Temat założony przez niniejszego użytkownika |
» 2019-11-23 22:00:00 no okej juz jest git, ale teraz mam taki problem ze niewazne czy dobrze wpisze czy zle zawsze przy koncowym wypisaniu liczb w miejscu cin.fail() pokazane jest 0, co jest oczywiście nie prawdą ponieważ wpisałem jakieś literki w miejsce np. integeru b. |
|
pekfos |
» 2019-11-23 22:55:59 A kod? |
|
KazikGajek Temat założony przez niniejszego użytkownika |
» 2019-11-23 23:04:40 { float b; float c; float a; bool bczyblad = cin.fail(); bool cczyblad = cin.fail(); bool aczyblad = cin.fail(); cout << "Podaj pierwsza liczbe:" << endl; cin >> a; cin.clear(); cin.ignore( 1000, '\n' ); cout << "Podaj druga liczbe" << endl; cin >> b; cin.clear(); cin.ignore( 1000, '\n' ); cout << "Podaj trzecia liczbe" << endl; cin >> c; cin.clear(); cin.ignore( 1000, '\n' ); cout << "Twoje liczby to:" << endl; cout << a << " Czy blad? " << aczyblad << endl; cout << b << " Czy blad? " << bczyblad << endl; cout << c << " Czy blad? " << cczyblad << endl; return 0; }
|
|
pekfos |
» 2019-11-23 23:19:26 Kolejność wykonywania operacji ma znaczenie. Sprawdzasz błędy zanim cokolwiek ma szansę się wydarzyć. |
|
KazikGajek Temat założony przez niniejszego użytkownika |
» 2019-11-23 23:51:10 Czyli który fragment kodu jest zły bo dalej nie rozumiem. // tak o zrobiłem i chyba jest git ale nie jestem pewny { float b; float c; float a; cout << "Podaj pierwsza liczbe:" << endl; cin >> a; bool aczyblad = cin.fail(); cin.clear(); cin.ignore( 1000, '\n' ); cout << "Podaj druga liczbe" << endl; cin >> b; bool bczyblad = cin.fail(); cin.clear(); cin.ignore( 1000, '\n' ); cout << "Podaj trzecia liczbe" << endl; cin >> c; bool cczyblad = cin.fail(); cin.clear(); cin.ignore( 1000, '\n' ); cout << "Twoje liczby to:" << endl; cout << a << " Czy blad? " << aczyblad << endl; cout << b << " Czy blad? " << bczyblad << endl; cout << c << " Czy blad? " << cczyblad << endl; return 0; }
|
|
pekfos |
» 2019-11-24 11:25:01 Jest dobrze. |
|
« 1 » |