komornik11 Temat założony przez niniejszego użytkownika |
Rozdz. 1 lekcja 9 - Prosze o pomoc w zadaniu » 2018-09-13 13:47:35 Czesc wszystkim, wczoraj postanowilem zmienic cos w swoim zyciu, zagonic sie do dzialania i tak o to rozpoczalem nauke programowania. Napotkalem pewna trudnosc z ktora nie moge sobie poradzic. Bardzo prosze, gdyby ktos byl tak mily, przeanalizowal kod i powiedzial dlaczego nie chce sie skompilowac. #include <iostream> #include <limits> int main() { float liczba1; float liczba2; float liczba3; bool test1; bool test2; bool test3; std::cin >> liczba1; test1 = std::cin.fail; std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); std::cin >> liczba2; test2 = std::cin.fail; std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); std::cin >> liczba3; test3 = std::cin.fail; std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); std::cout << "liczba pierwsza to: " << liczba1 << " wczytano? " << test1; std::cout << "liczba druga to: " << liczba2 << " wczytano? " << test2; std::cout << "liczba trzecia to: " << liczba3 << " wczytano? " << test3; return 0; } Pozdrawiam cieplo! |
|
YooSy |
» 2018-09-13 14:58:04 W C++ przypisujemy prawą stronę do lewej. test1 = std::cin.fail(); . Na przyszłość podawaj też treść błedu. |
|
komornik11 Temat założony przez niniejszego użytkownika |
» 2018-09-13 15:59:40 Dzięki za odpowiedź, jednak nadal nie działa! ||=== Build file: "no target" in "no project" (compiler: unknown) ===| C:\Users\user\Documents\start.cpp||In function 'int main()':| C:\Users\user\Documents\start.cpp|14|error: cannot convert 'std::basic_ios<_CharT, _Traits>::fail<char, std::char_traits<char> >' from type 'bool (std::basic_ios<char>::)() const' to type 'bool'| C:\Users\user\Documents\start.cpp|19|error: cannot convert 'std::basic_ios<_CharT, _Traits>::fail<char, std::char_traits<char> >' from type 'bool (std::basic_ios<char>::)() const' to type 'bool'| C:\Users\user\Documents\start.cpp|24|error: cannot convert 'std::basic_ios<_CharT, _Traits>::fail<char, std::char_traits<char> >' from type 'bool (std::basic_ios<char>::)() const' to type 'bool'| ||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===| EDIT: Okej, zapomniałem o nawiasach, jednak jeszcze nie działa tak jak powinno. Program zwraca 1 gdy wystąpi błąd przy wczytaniu danych, natomiast chciałbym uzyskać odwrotny efekt, jak to zrobić? |
|
pekfos |
» 2018-09-13 18:22:17 Jak wygląda kod?
PS: poprawiłem formatowanie twoich postów. Lepiej żebyś to dalej sam robił. |
|
komornik11 Temat założony przez niniejszego użytkownika |
» 2018-09-14 11:51:45 #include <iostream> #include <limits> int main() { float liczba1; float liczba2; float liczba3; bool test1; bool test2; bool test3; std::cin >> liczba1; test1 = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); std::cin >> liczba2; test2 = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); std::cin >> liczba3; test3 = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); std::cout << "liczba pierwsza to: " << liczba1 << " wczytano? " << test1 << std::endl; std::cout << "liczba druga to: " << liczba2 << " wczytano? " << test2 << std::endl; std::cout << "liczba trzecia to: " << liczba3 << " wczytano? " << test3; return 0; Chcę żeby zwracał 1 gdy nie wystąpi błąd i 0 jeśli wystąpi. Aktualnie jest odwrotnie |
|
pekfos |
» 2018-09-14 12:19:10 Yy.. to tak nie powinno wyglądać. Będę musiał to poprawić w lekcji ;) Jak chcesz zrobić zadanie tak jak jest sformułowane teraz, to potrzebujesz wiedzy z następnych 3 lekcji opisujących podstawowe operacje matematyczne, logiczne itd. W praktyce powinna wystarczyć już sama następna lekcja. |
|
YooSy |
» 2018-09-14 14:47:24 Możesz też skorzystać z metody good() zamiast fail() . good() zwraca wartości przeciwne do fail() . Te metody nie są dokładnymi przeciwieństwami, ale w tym prostym przypadku wystarczy. |
|
pekfos |
» 2018-09-14 15:02:21 Te metody nie są dokładnymi przeciwieństwami |
Dlatego good() zostało usunięte z kursu. |
|
« 1 » 2 3 |