开发者

converting string to integer problem in c++

开发者 https://www.devze.com 2023-01-19 04:45 出处:网络
i am getting an problem string ccc=\"example\"; in开发者_JS百科t cc=atoi(csession); it says cannot convert ‘std::string’ to ‘const char*’ for argument ‘1’ to ‘int atoi(const char*)’

i am getting an problem

 string ccc="example";
    in开发者_JS百科t cc=atoi(csession);

it says cannot convert ‘std::string’ to ‘const char*’ for argument ‘1’ to ‘int atoi(const char*)’ do i should convert the string to char array and then apply to atoi or is there is any other way


istringstream in(ccc);
int cc;
in >> cc;
if(in.fail())
{
   // error, ccc had invalid format, more precisely, ccc didn't begin with a number
   //throw, or exit, or whatever
}

istringstream is in header <sstream> and in namespace std. The above code will extract the first integer from the string that is, if ccc were "123ac" cc would be 123. If ccc were "abc123" then cc would have undefined value and in.fail() would be true.


According to your description, maybe what you want is:

string ccc="example"; int cc=atoi(ccc.c_str());


Use .c_str() on the string object to pass it to atoi


Hehe, nice one Armen. Here's a solution using boost::lexical_cast:

#include <boost/lexical_cast.hpp>
.
.
.
int c = boost::lexical_cast<int>(csession);

Documentation available here: boost::lexical_cast.

0

精彩评论

暂无评论...
验证码 换一张
取 消