'If' nie wczytuje instrukcji
Ostatnio zmodyfikowano 2013-01-30 11:47
Frish Temat założony przez niniejszego użytkownika |
'If' nie wczytuje instrukcji » 2013-01-30 10:20:01 Witam mam taki kod: #include <iostream>
int main() { int a; std::cout << "podaj liczbe: "; std::cin >> a; bool aliczba = std::cin.good(); bool Aliczba = std::cin.fail(); std::cout << "Wlasciwie: " << aliczba << std::endl; std::cout << "Blednie: " << Aliczba << std::endl; if( Aliczba == 1 ) { int b; std::cout << "Niewlasciwie podales!" << std::endl; std::cout << "Podaj poprawna: "; std::cin >> b; } return 0; }
Czy to jest poprawnie napisane, ponieważ nie wczytuje mi instrukcji std::cin >>b; P.S. Prosze też podajcie mi kod jaki mam tu wpisaywać żeby w postach umieszczać kod programów w ramkach jak Wy to robicie, ta ramka z nagłowkiem C++. |
|
ShadowkhaN |
» 2013-01-30 10:26:40 |
|
crash |
» 2013-01-30 10:31:39 Zastanów się, czy nie wczytuje poprawnie cin >> b, czy może po prostu tego nie wyświetla :) Albo czy nie wczytuje i nie wyświetla. Kod napisałeś tak, że tego nie sprawdzasz po prostu więc z punktu widzenia programu tego po prostu nie wiesz |
|
Frish Temat założony przez niniejszego użytkownika |
» 2013-01-30 11:05:34 Ale chciałem żeby ta instrukcja po sprawdzeniu czy wartość została dobrze wpisana, pozwolila na wpisanie poprawnej wartości jeżeli wcześniejsza była błędna... i wlaśnie if( Aliczba==1 ) ma decydować o wczytaniu również cin>>b. Co mam w tym zmienić żeby mój zamysł był wykonany przez program? |
|
ShadowkhaN |
» 2013-01-30 11:19:24 |
|
ligras |
» 2013-01-30 11:25:36 a mi się wydaje, że wystarczy jak wyczyścisz flagi błędu strumienia wejściowego oraz bufor strumienia wejściowego przed każdym wczytywaniem cin. |
|
Frish Temat założony przez niniejszego użytkownika |
» 2013-01-30 11:34:48 Czyli nie da się zrobić tego w sposób który ja chciałem...? |
|
ligras |
» 2013-01-30 11:37:29 Może ja się nie znam, bo też się dopiero uczę, ale, jak wpiszesz dwie dodatkowe linijki do Twojego kodu: #include <iostream>
int main() { int a; std::cout << "podaj liczbe: "; std::cin >> a; bool aliczba = std::cin.good(); bool Aliczba = std::cin.fail(); std::cout << "Wlasciwie: " << aliczba << std::endl; std::cout << "Blednie: " << Aliczba << std::endl; if( Aliczba == 1 ) { int b; std::cout << "Niewlasciwie podales!" << std::endl; std::cout << "Podaj poprawna: "; std::cin.clear(); std::cin.sync(); std::cin >> b; } return 0; }
to moim zdaniem śmiga dobrze. |
|
« 1 » 2 |