fork download
  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. bool GetChoice(int *ret, int count);
  8.  
  9. void DoTaskOne() { cout << "one" << endl; }
  10. void DoTaskMany(int i) { cout << "many " << i << endl; }
  11.  
  12. void menu() { cout << "MENU" << endl; }
  13.  
  14. int main()
  15. {
  16. bool exit = false;
  17.  
  18. do {
  19. int choice;
  20. do {
  21. menu();
  22. }
  23. while (!GetChoice(&choice, 5));
  24.  
  25. switch (choice)
  26. {
  27. case (1):
  28. DoTaskOne();
  29. break;
  30. case (2):
  31. DoTaskMany(2);
  32. break;
  33. case (3):
  34. DoTaskMany(3);
  35. break;
  36. case (4):
  37. continue;
  38. break;
  39. case (5):
  40. exit = true;
  41. break;
  42. }
  43. }
  44. while (!exit);
  45.  
  46. return 0;
  47. }
  48.  
  49. bool GetChoice(int *ret, int count)
  50. {
  51. string line;
  52. getline(cin, line);
  53. bool ok = istringstream(line) >> *ret;
  54. ok = ok && *ret >= 1 && *ret <= count;
  55.  
  56. if (!ok) cout <<"Bledny wybor!\n";
  57. return ok;
  58. }
  59.  
Success #stdin #stdout 0.01s 2864KB
stdin
nie liczba
9999
1
2
3
4
5
stdout
MENU
Bledny wybor!
MENU
Bledny wybor!
MENU
one
MENU
many 2
MENU
many 3
MENU
MENU