Конвертировать int8_t в std :: string

Это правильно для всех компиляторов C ++? Или я должен вместо этого приводить к int первым?

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

2

Решение

Вы можете использовать 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

8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]