Zabezpieczenie programu przed wprowadzeniem złych danych.
Ostatnio zmodyfikowano 2011-11-05 19:24
malan |
» 2011-11-05 11:54:36 while(...) { std::cout << "Co chcesz teraz zrobic?: "; std::cin >> wybor; sukces = std::cin.good(); if( sukces == true ) { } else { } } :) |
|
Swift Temat założony przez niniejszego użytkownika |
» 2011-11-05 11:56:45 Po else mam: std::cout << "Podano zla liczbe" << std::endl;
Poza tym program każdą wprowadzoną cyfrę odczytuje jak warunek dla rozpoczęcia losowania. Program na chwilę obecną wygląda tak: #include <iostream> #include <cstdlib>
void menu() { }
int main() { int wybor; unsigned int trik; bool sukces; menu(); do { std::cout << "Co chcesz teraz zrobic?: "; std::cin >> wybor; sukces = std::cin.good(); if( sukces == true ) { std::cout << "----------" << std::endl; if( wybor = 1 ) { } } else { std::cout << "Podano zla liczbe" << std::endl; } } while( wybor != 2 ); return 0; } |
|
malan |
» 2011-11-05 12:13:14 A teraz przeczytaj Obsługa strumienia wejściowego i poszukaj jeszcze jeden rzeczy, której potrzebujesz :) Dobra - podpowiem: Czyszczenie zawartości strumienia wejściowego. |
|
Swift Temat założony przez niniejszego użytkownika |
» 2011-11-05 17:46:52 O! Działa! Dzięki wielkie za pomoc ;) Mogę teraz realizować naukę dalej! ;****
Ah, jednak nie do końca.. Nadal występuje problem. Program nie wariuje po wpisaniu litery, ale każdą cyfrę traktuje jak warunek dla rozpoczęcia losowania :/
P.S. Malan, posiadasz może jakiś komunikator, na który mógłbym Ci spamować przy każdym błędzie? :D |
|
malan |
» 2011-11-05 18:40:46 Ah, jednak nie do końca.. Nadal występuje problem.(...) |
Zapewne zrobiłeś coś źle :) P.S. Malan, posiadasz może jakiś komunikator, na który mógłbym Ci spamować przy każdym błędzie? :D |
Nie :) |
|
Swift Temat założony przez niniejszego użytkownika |
» 2011-11-05 18:47:30 Program po zmianach: #include <iostream> #include <cstdlib>
void menu() { }
int main() { int wybor; unsigned int trik; bool sukces; menu(); do { std::cout << "Co chcesz teraz zrobic?: "; std::cin.clear(); std::cin.sync(); std::cin >> wybor; sukces = std::cin.good(); if( sukces == true ) { std::cout << "----------" << std::endl; if( wybor = 1 ) { } } else { std::cout << "Podano zla liczbe." << std::endl; } } while( wybor != 2 ); return 0; }
No i nie wiem co może być źle.. Analizowałem 5 razy pętlę i nic. |
|
pekfos |
» 2011-11-05 19:16:40 if( wybor = 1 ) co to ma być? wstaw "==" zamiast '='. |
|
Swift Temat założony przez niniejszego użytkownika |
» 2011-11-05 19:24:30 Ah, jak mogłem to przeoczyć.. Wybaczcie, przez te wszystkie zmiany i kombinacje musiało mi się pochrzanić.. |
|
1 2 « 3 » |