【发布时间】:2014-07-25 08:59:36
【问题描述】:
喂,
我想用 cin 函数读取 c++ 中的数字。我知道有很多线程,但我没有找到完美的解决方案。
首先我尝试了 cin.fail() 函数。但是如果我输入这样的数字 12asdf 它会读取 12 正确并且没有抛出错误。
然后我尝试读取一个字符串并使用 atoi() 函数对其进行转换,但如果我读取这样的字符串 12asdf 我会遇到同样的问题。它读取 12 正确并且没有抛出错误。
我尝试使用该功能,但 all_of 功能在 Visual 2013 中不可用。
if ( std::all_of(input.begin(), input.end(), std::isdigit) )
{
//input is integer
}
如何检查这样的输入 12asdf 并抛出错误?
最好的问候
【问题讨论】:
-
IIRC,
boost::lexical_cast检查整个字符串。