可能是重复问题:
如何在C++中将字符串解析为整数?
C++03中有许多将字符串转换为整数的方法。到目前为止,我发现最好的方法是:
string text;
cin>>text;
int converted;
if ( !(istringstream(text) >> converted) ){
cout<<"conversion failed\n";
}
cout<<"the converted string is "<<converted;
这种解决方案的问题在于它毫不犹豫地接受“12monkeys”并将其转换为12。有没有一些简单的方法来检查这个,并在这种情况下输出“转换失败”?
需要注意的是,我已经尝试过atoi()、atol()和strtol(),但如果失败它会返回0是无用的。我该如何知道字符串不是“0”?除了strtol()之外也没有范围检查。还没提到“12monkeys”的问题同样存在。
boost::lexical_cast
,那么就像我在这里所做的那样自己编写代码。 - Robᵩ