fork download
  1. #include <iostream>
  2. #include <limits>
  3. #include <cstdlib>
  4.  
  5. int main() {
  6. auto delim = decltype(std::cin)::traits_type::to_int_type('\n');
  7.  
  8. int choiceMenu = 0;
  9. std::cin >> choiceMenu;
  10. while (std::cin.fail() || choiceMenu < 1 || choiceMenu > 5) {
  11. if (std::cin.bad() || std::cin.eof()) {
  12. std::cout << "fatal error" << std::endl;
  13. return EXIT_FAILURE;
  14. }
  15. //std::cout << "Invalid choice, try again: ";
  16. std::cin.clear();
  17. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), delim);
  18. std::cin >> choiceMenu;
  19. }
  20. std::cin.ignore(std::numeric_limits<std::streamsize>::max(), delim);
  21.  
  22. std::cout << "choiceMenu: " << choiceMenu << std::endl;
  23. }
Success #stdin #stdout 0s 5516KB
stdin
qwer
test   
     55
-1
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
5
stdout
choiceMenu: 5