boost::crcを文字列で取得したい。
checksum()で受け取るデータを文字列で受け取りたかったので、
formatを用いて、取得するサンプルを書いてみた。
もっとうまい方法があれば、ご教授願います。
/* -------------------------------------------------------------------------------- */ /** * @file:BoostTests.cpp * * @brief:CRC文字列変換テスト * * @author: Keisuke.Hata * * @date:2008/04/30 15:21:18 * * @note * */ /* -------------------------------------------------------------------------------- */ #include "stdafx.h" #include <cstddef> #include <algorithm> #include <iostream> #include <boost/crc.hpp> #include <boost/foreach.hpp> #include <boost/assign.hpp> #include <boost/array.hpp> #include <boost/format.hpp> #include <windows.h> #define foreach BOOST_FOREACH using namespace std; namespace std { class stringutil { public: typedef std::vector<BYTE> bytes; static stringutil::bytes tobytes( std::string& str ) { bytes _bytes; foreach( char c, str ) { _bytes.push_back( (BYTE)c ); } return _bytes; } }; } int _tmain(int argc, _TCHAR* argv[]) { using namespace boost::assign; boost::crc_32_type ret; std::string hoge("Seasons"); std::stringutil::bytes bytes; bytes = stringutil::tobytes( hoge ); ret.process_bytes( &bytes.front() , bytes.size() ); boost::format fmt; fmt = boost::format( "%1%" ) % ret.checksum(); cout << fmt.str().data() << endl; return 0; }