Microsoft C ++异常:内存位置的std :: invalid_argument

时间:2015-03-25 08:18:03

标签: c++

我在尝试运行代码时出现此错误

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;
};

1 个答案:

答案 0 :(得分:4)

您应该更仔细地阅读文档。由于它是状态,std::stoi可能会抛出异常,如果不能执行转换,则会抛出std::invalid_argument

您的代码正在尝试将"/"转换为数字,在这种情况下,std::stoi会抛出一个未捕获的异常,从而终止您的程序。