stoi وقتی که ورودیش عدد نباشه یا از مقدار int اندازش بزرگتر باشه exception بر میگردونه و همین طور که میدونید اگر exception ها رو بوسیله try catch کنترل نکنین برنامه بسته میشه
به این شکل بنویسن
#include <iostream>
#include <stdexcept>
int main ()
{
int number;
try {
number=std::stoi("12312312314354678903247");
}
catch (const std::invalid_argument& exc) {
number=0;
}
catch(const std::out_of_range& exc){
std::cout<<"Addad bozorg ast !";
number=0;
}
std::cout<<number;
}
کد بالا در صورت اشتباه بودن ورودی 0 رو میزاره داخل number