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)
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)
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
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 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.