C++と色々

主にC++やプログラムに関する記事を投稿します。

boost::lexical_cast

自分がboost全然知らないので勉強目的 かつ 身内への宣伝を兼ねて色々使ってみることにする。

最初はboost::lexical_cast
使い方はとっても簡単で、C++式のキャストと同じ書き方で文字列→数値、数値→文字列の変換を行う。自作クラスでも型変換子だか、演算子のオーバーロードすれば使えると思う(適当)。後で試してみるか…

サンプル

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

int main()
{
	//using宣言
	using boost::lexical_cast;
	using boost::bad_lexical_cast;
	using std::cout;
	using std::endl;
	using std::string;

	string str = "-1234";
	int a;
	double b = 3.14;

	try
	{
		a = lexical_cast<int>(str);//"-1234"から-1234へ
		str = lexical_cast<string>(b);//3.14から"3.14"へ
	}
	catch(const bad_lexical_cast& e)
	{
		cout << e.what() << endl;
	}

	cout << a << endl;
	cout << str << endl;

	return 0;
}

実行結果

-1234
3.1400000000000001
続行するには何かキーを押してください . . .

ということで今回はこれで終わりにしよう。