将int8_t转换为std :: string

时间:2012-11-28 13:59:39

标签: c++ c++98

这对所有C ++编译器都是正确的吗?或者我应该先转换为int吗?

int8_t i = -128; 
std::string = boost::lexical_cast<std::string>((int16_t)i)

1 个答案:

答案 0 :(得分:9)

您可以使用std::to_string功能执行此操作:

 std::int8_t i = -128; 
 std::string s=std::to_string(i);

http://en.cppreference.com/w/cpp/string/basic_string/to_string

注:

我假设C ++ 11,因为固定宽度类型只在C ++ 11中添加

http://en.cppreference.com/w/cpp/types/integer

修改

如果这不是C ++ 11(并且您在其他地方获得了typedef表单(C99?)),那么您可以只提供源类型作为模板参数。

 std::string str=boost::lexical_cast<std::string, int>(i);

http://www.boost.org/doc/libs/1_40_0/libs/conversion/lexical_cast.htm#synopsis