Boost.Conversion
lexical_cast<>メモ。
数値を文字列に変換する
#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>
int main( int argc, char* argv[] )
{
using namespace std;
using namespace boost;
int num = -12345;
string str = lexical_cast<string>( num ); // 数値(-12345) -> 文字列"-12345"
cout << "str = " << str << endl;
return 0;
}
文字列を数値に変換
#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>
int main( int argc, char* argv[] )
{
using namespace std;
using namespace boost;
string str = "-12345";
int num = lexical_cast<int>( str ); // 文字列"-12345" -> 数値(-12345)
cout << "num = " << num << endl;
return 0;
}
例外処理
#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>
int main( int argc, char* argv[] )
{
using namespace std;
using namespace boost;
string str = "abcdefg";
try {
int num = lexical_cast<int>( str );
}
catch (bad_lexical_cast &e )
{
cout << e.what() << endl;
}
return 0;
}