#include
#include
using namespace std;
int main()
{
string str = "89";
int i = stoi(str);
cout << i;
return 0;
}
我的編譯器是codeblocks13.12 已經調過按照c++11的標准編譯
stoi當字符串不符合規范時,會拋出異常,所以你應該捕獲異常來做
#include <stdexcept>
std::string y = "2323298347293874928374927392374924"
int x;
try {
x = stoi(y);
}
catch(std::invalid_argument& e){
// if no conversion could be performed
}
catch(std::out_of_range& e){
// if the converted value would fall out of the range of the result type
// or if the underlying function (std::strtol or std::strtoull) sets errno
// to ERANGE.
}
catch(...) {
// everything else
}