if(!(cin>>ile))
{
cerr<<"Prosze podac liczbe calkowita :";
exit(0);
}
Musisz wiedzieć, że if to instrukcja warunkowa, która się nie powtarza. Do powtarzalności służy np. pętla while.
Krótka instrukcja co powinieneś zrobić, by mieć powtarzalność:
- Zamiast if-a wstaw while
- Wywal exit(0). Swoją drogą, to nie używaj exit(0), tylko exit(1). 0 jest przyjęte dla poprawnie wykonanego kodu
- W pętli while dodaj std::cin.clear();<- Najkrócej mówiąc zamienia "złe" bity na dobre (nie bijcie za to uproszczenie. Dla ciekawskich zamienia: std::cin.rdstate() na std::ios_base::goodbit)
- A dla pewności std::cin.sync(); <- Czyści z niepotrzebnych znaków
A co do wprowadzania liczb zmiennoprzecinkowych, to musisz wiedzieć, że gdy wprowadzisz do inta np. 2.5, to i tak zrobi się z tego 2, więc nie ma sensu się tym bawić :)
Pozdrawiam :)