Comment puis-je convertir de ssortingngstream en chaîne en C ++?

Comment convertir de std::ssortingngstream en std::ssortingng en C ++?

Dois-je appeler une méthode sur le stream de chaînes?

yourSsortingngStream.str ()

Utilisez la méthode .str () :

Gère le contenu de l’object chaîne sous-jacent.

1) Retourne une copie de la chaîne sous-jacente comme si vous rdbuf()->str() .

2) Remplace le contenu de la chaîne sous-jacente comme en appelant rdbuf()->str(new_str)

Remarques

La copie de la chaîne sous-jacente renvoyée par str est un object temporaire qui sera détruit à la fin de l’expression, appelant ainsi directement c_str() sur le résultat de str() (par exemple dans auto *ptr = out.str().c_str(); ) résulte en un pointeur en suspens …

De la mémoire, vous appelez ssortingngstream :: str () pour obtenir la valeur std :: ssortingng.

std::ssortingngstream::str() est la méthode que vous recherchez.

Avec std::ssortingngstream :

 template  std::ssortingng YourClass::NumericToSsortingng(const T & NumericValue) { std::ssortingngstream ss; ss << NumericValue; return ss.str(); } 

std::ssortingngstream est un outil plus générique. Vous pouvez utiliser la classe plus spécialisée std::ossortingngstream pour ce travail spécifique.

 template  std::ssortingng YourClass::NumericToSsortingng(const T & NumericValue) { std::ossortingngstream oss; oss << NumericValue; return oss.str(); } 

Si vous travaillez avec le type std::wssortingng , vous devez préférer std::wssortingngstream ou std::wossortingngstream .

 template  std::wssortingng YourClass::NumericToSsortingng(const T & NumericValue) { std::wossortingngstream woss; woss << NumericValue; return woss.str(); } 

Si vous voulez que le type de caractère de votre chaîne puisse être sélectionné au moment de l'exécution, vous devriez également en faire une variable de modèle.

 template  std::basic_ssortingng YourClass::NumericToSsortingng(const NumType & NumericValue) { std::basic_ossortingngstream oss; oss << NumericValue; return oss.str(); } 

Pour toutes les méthodes ci-dessus, vous devez inclure les deux fichiers d'en-tête suivants.

 #include  #include  

Notez que l'argument NumericValue dans les exemples ci-dessus peut également être transmis en tant que std::ssortingng ou std::wssortingng à utiliser respectivement avec les std::ossortingngstream et std::wossortingngstream . Il n'est pas nécessaire que NumericValue soit une valeur numérique.

Je voudrais append que vous devez terminer le tampon strstream avec ‘\ 0’ avant d’appeler la méthode .str (). Sinon, vous obtiendrez de mauvais caractères lors du vidage de la chaîne.