私は次のコードを実行しています、これを読みました:
#include <iostream>
#include <boost/format.hpp>
#include <boost/algorithm/string.hpp>
struct CharacterEscaper
{
template<typename FindResultT>
std::string operator()(const FindResultT& Match) const
{
std::string s;
for (typename FindResultT::const_iterator i = Match.begin();i != Match.end();i++)
{
s += str(boost::format("\\x%02x") % static_cast<int>(*i));
}
return s;
}
};
int main (int argc, char **argv)
{
std::string s("start\x0aend");
boost::find_format_all(s, boost::token_finder(!boost::is_print()), CharacterEscaper());
std::cout << s << std::endl;
return 0;
}
私が得ている出力はこれです:
start\xffffffaend
私は次のことを期待していました:
start\x0aend
これを読んだ:
http://en.cppreference.com/w/cpp/language/escape
何が正しいですか?