2 votes

Convertir int8_t en std::string

Est-ce correct pour tous les compilateurs C++ ? Ou devrais-je plutôt passer en int ?

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

10voto

111111 Points 8668

Vous pouvez utiliser le std::to_string pour ce faire :

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

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

NOTE :

J'ai supposé C++11 parce que les types à largeur fixe n'ont été ajoutés qu'en C++11.

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

éditer

S'il ne s'agit pas de C++11 (et que vous obtenez la forme typedef ailleurs (C99 ?)), vous pouvez simplement fournir le type source en tant que paramètre de modèle.

 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X