terminate called after throwing an instance of 'errors'
. #include <iostream>
#include "sz.h"
using namespace std;
int main(){
system("chcp 65001 && cls");
printf("введи число:");
int n = sz::in_is_int();
cout << n << endl;
return 0;
}
#include <iostream>
using namespace std;
enum errors{
not_int = 1 // не число
};
namespace sz{
int in_is_int(){
int res = 0;
try{
cin >> res;
if (cin.fail()){
cin.clear();
cin.ignore(32767,'\n');
throw not_int;
}
}
catch (int e){
printf("Це не число. Спробуй ще раз\n");
return in_is_int();
}
return res;
}
}
catch (errors){
printf("Це не число. Спробуй ще раз\n");
return in_is_int();
}