兔八哥极品软件园    运行: 4499天 | 文章:640 篇 | 评论:505 条 | 碎语:1条

c++中 string和int转换

作者:admin 发布于:2012-8-10 15:32 Friday 分类:Windows


1) 在C标准库里面,使用atoi:

     #include <cstdlib>
    #include <string>

    std::string text = "152";
    int number = std::atoi( text.c_str() );
    if (errno == ERANGE) //可能是std::errno
    {
     //number可能由于过大或过小而不能完全存储
    }
    else if (errno == ????)
    //可能是EINVAL
    {
     //不能转换成一个数字
    }

2) 在C++标准库里面,使用stringstream:(stringstream 可以用于各种数据类型之间的转换)

     #include <sstream>
    #include <string>

    std::string text = "152";
    int number;
    std::stringstream ss;


    ss << text;//可以是其他数据类型
    ss >> number; //string -> int
    if (! ss.good())
    {
    //错误发生
    }

    ss << number;// int->string
    string str = ss.str();
    if (! ss.good())
    {
     //错误发生
    }

3) 在Boost库里面,使用lexical_cast:

#include <boost/lexical_cast.hpp>
#include <string>

try
{
 std::string text = "152";
 int number = boost::lexical_cast< int >( text );
}
catch( const boost::bad_lexical_cast & )
{
 //转换失败
}     


Powered by 兔八哥极品软件 苏ICP备12049267号 sitemap