Transformer un int/double... en chaine de caractères de type string en cpp [gcc]

Contenu du snippet

Voici une petite astuce utilisant les flux pour transformer tout type de données en chaine de caractères en C++ (classe string de la STL) sans utiliser les fonctions du langage C (itoa, etc.).

Pour cela, les données à mettre dans la chaine sont placées dans un flux temporaire de type stringstream.

Voici un exemple trivial pour illustrer le fonctionnement avec un double :

Source / Exemple :


// Flux d'entrée/sortie standards (juste pour le cout)
#include <iostream>
// Flux de chaine de caractères pour les flux stringstream
#include <sstream>

using namespace std;

int main()
{
  string s;
  stringstream sstr;
  double pi=3.14159;

  // on met le double dans le flux sstr
  sstr << pi;
  // on écrit dans la chaine s
  sstr >> s;

  // on affiche la chaine contenant le double
  cout << s;

  return 0;
}

Conclusion :


Une fois dans une chaine string, vous pouvez facilement manipuler vos données avec la classe string de la STL.

Compilé avec gcc 3.2

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.