【发布时间】:2016-10-13 21:46:48
【问题描述】:
有没有办法在 C++ 中使用 std::stoi() 检查字符串输入是否可转换为 int? (例如,我是否可以检查是否会引发 invalid_argument 异常?)
一个不起作用的例子,但希望能解释我正在尝试做的事情:
string response;
cout << prompt;
if (std::stoi(response) throws invalid_argument) { //Something like this
return std::stoi(response);
}
else {
badInput = true;
cout << "Invalid input. Please try again!\n";
}
研究:
我找到了几种检查字符串是否为 int 的方法,但我希望有一种方法可以使用我还没有找到的 std::stoi()。
【问题讨论】:
-
response的类型是什么?您能否提供一个完整的示例,以便我们自己检查? stackoverflow.com/help/mcve -
更新澄清
-
我已阅读文档。
-
"如何检查是否会抛出 invalid_argument 异常?"为什么不直接catch 抛出 的异常,而不是尝试预测和避免它?您不能使用
stoi来检查stoi是否会抛出异常,而不会抛出异常......当然。
标签: c++ string validation int