我在std::stol
上有问题。我发现的有关std::stol
或std::stoi
问题的所有答案都在处理C ++ 11编译/构建。
std::string myString;
long myLong = std::stol(myString);
当我使用
std::stol()
时,出现以下错误:terminate called after throwing an instance of 'std::invalid_argument'
what(): stol
Aborted (core dumped)
有任何想法吗?用gcc -std :: C ++ 11构建可以正常工作。
注意:我认为这是我使用的第一个C ++ 11表达式。
最佳答案
当您的字符串不包含可以成功转换为long
的有效数字时,这是预期的行为。
为了避免程序被terminate
d破坏,您可以将代码包装在try
...catch
block中并处理异常。