Problem z Zadaniem z Poradnika (lekcja 9)
Ostatnio zmodyfikowano 2012-04-22 11:38
FFF Temat założony przez niniejszego użytkownika |
Problem z Zadaniem z Poradnika (lekcja 9) » 2012-04-22 10:44:40 Napisz program, który wczyta trzy liczby rzeczywiste, a na końcu programu je wszystkie wypisze. Zadbaj o to, by bufor strumienia wejściowego był za każdym razem czyszczony. Wynik końcowy powinien również zawierać informacje czy wczytanie danej liczby się powiodło. Na poczatku zrobilem to zadanie bez czyszczenia strumienia i informacje czy wczytywanie sie powiodlo umieszczalem zaraz po miejscu na wczytanie tej liczby. Pozniej przeczytalem ze informacje o wczytaniu maja byc umieszczone na koncu programu i trzeba uzyc zmiennych typu bool. Po seri błędów i kombinowania moj kod wygląda teraz tak: #include <iostream> #include <cstdio> int main() { int a; int b; int c; bool A; bool B; bool C; std::cout << "wprowadz 1 liczbe " << std::endl; std::cin >> a; A = std::cin.good(); std::cin.good(); std::cin.fail(); std::cin.clear(); std::cin.sync(); std::cout << "wprowadz 2 liczbe " << std::endl; std::cin >> b; B = std::cin.good(); std::cin.good(); std::cin.clear(); std::cin.sync(); std::cout << "wporwadz 3 liczbe " << std::endl; std::cin >> c; C = std::cin.good(); std::cin.good(); std::cin.clear(); std::cin.sync(); std::cout << "1 licbza tooo = " << a << std::endl; std::cout << "wczytano ? " << std::cout << "A" << std::endl; std::cout << "2 liczba tooo = " << b << std::endl; std::cout << "wczytano ? " << std::cout << "B" << std::endl; std::cout << "3 liczba tooo = " << c << std::endl; std::cout << "wczytano ? " << std::cout << "C" << std::endl; }
I chodzi o to ze za kazdym razem wychodzi "czy wczytano ? 0x4740c4A lub B lub C edit. Przepraszam ze napisalem w tym dziale ale nie zauwazylem ze do poradnika jest specjalny dzial |
|
SeaMonster131 |
» 2012-04-22 11:11:53 std::cin.good(); std::cin.fail();
Co według Ciebie to robi, skoro masz już np A = std::cin.good(); ? std::cout << "wczytano ? " << std::cout << "A" << std::endl;
Jeżeli chcesz wypisać jakąś zmienną robisz o tak std::cout << zmienna; - (bez ""). |
|
FFF Temat założony przez niniejszego użytkownika |
» 2012-04-22 11:17:13 Na poczatku pisalem samo A = std::cin.good() ale jak mi powyskakiwaly te liczby to juz zaczalem zmieniac wiec teraz moj kod wyglada tak: #include <iostream> #include <cstdio> int main() { int a; int b; int c; bool B; bool A; bool C; std::cout << "wprowadz 1 liczbe " << std::endl; std::cin.clear(); std::cin.sync(); std::cin >> a;; A = std::cin.good(); std::cout << "wprowadz 2 liczbe " << std::endl; std::cin.clear(); std::cin.sync(); std::cin >> b; B = std::cin.good(); std::cout << "wporwadz 3 liczbe " << std::endl; std::cin.clear(); std::cin.sync(); std::cin >> c; C = std::cin.good(); std::cout << "1 licbza tooo = " << a << std::endl; std::cout << "wczytano ? " << std::cout << A << std::endl; std::cout << "2 liczba tooo = " << b << std::endl; std::cout << "wczytano ? " << std::cout << B << std::endl; std::cout << "3 liczba tooo = " << c << std::endl; std::cout << "wczytano ? " << std::cout << C << std::endl; }
Ale nadal nie pozbylem sie tego błedu (przy std::cout << A wyhchodzza mi dziwne liczby) edit. poprawilem tamten fragment w tym kodzie |
|
SeaMonster131 |
» 2012-04-22 11:22:11 std::cout << "wprowadz 1 liczbe " << std::endl; std::cin.sync(); std::cin >> a;; C = std::cin.good();
zwróc uwagę na ostatnią linijkę w podanym przeze mnie fragmencie Twojego kodu. |
|
FFF Temat założony przez niniejszego użytkownika |
» 2012-04-22 11:26:15 No tak nie wiem czemu tak napisalem ale poprawilem juz to i dalej to samo :/ Zmienilem poprawiony fragment w poprzednim poscie
|
|
SeaMonster131 |
» 2012-04-22 11:34:50 Tutaj jest błąd, porównaj sobie te 2 linijki: std::cout << "wczytano ? " << std::cout << A << std::endl;
z tą: std::cout << "wczytano ? " << A << std::endl;
|
|
FFF Temat założony przez niniejszego użytkownika |
» 2012-04-22 11:38:41 Dzieki teraz juz wszystko jest ok :) |
|
« 1 » |