我在尝试运行代码时出现此错误
Testing.exe中0x769E4598处的未处理异常:Microsoft C ++异常:内存位置0x0086F498处的std :: invalid_argument。
int main() {
string s = "2/1";
int c = stoi(s.substr(s.find("/", 0), s.length() - s.find("/", 0)-1));
cout << c;
int pi;
cin >> pi;
};
答案 0 :(得分:4)
您应该更仔细地阅读文档。由于它是状态,std::stoi可能会抛出异常,如果不能执行转换,则会抛出std::invalid_argument
。
您的代码正在尝试将"/"
转换为数字,在这种情况下,std::stoi
会抛出一个未捕获的异常,从而终止您的程序。