Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[devcpp] pb avec std::ostringstream

3 réponses
Avatar
Frédéric GOURUL
Bonjour,

J'utilise depuis peu Devcpp (version 4) et je ne trouve pas <sstream> pour
pouvoir utiliser la classe std::ostringstream. J'ai cherché dans d'autres
include, mais je n'ai pas trouvé la définition de cette classe. La plus
approchante que j'ai trouvée est std::ostrstream (<strstream>), mais
visiblement elle ne fonctionne pas de la même manière.

std::ostrstream s;
s << "texte " << endl;
cout << s.str();

Le code suivant me donne une erreur d'exécution, alors que la même chose
avec std::ostringstream fonctionne parfaitement (avec VisualStudio).

Quelqu'un a-t-il rencontré le problème ou une explication à me fournir?
Merci.

3 réponses

Avatar
Loïc Joly
Frédéric GOURUL wrote:

Bonjour,

J'utilise depuis peu Devcpp (version 4) et je ne trouve pas <sstream> pour
pouvoir utiliser la classe std::ostringstream.


Il me semble que devcpp utilise gcc, qui jusqu'à sa version 3 n'avait
pas <sstream>. Peut-être qu'en mettant à jour ton environnement ?

J'ai cherché dans d'autres
include, mais je n'ai pas trouvé la définition de cette classe. La plus
approchante que j'ai trouvée est std::ostrstream (<strstream>), mais
visiblement elle ne fonctionne pas de la même manière.

std::ostrstream s;
s << "texte " << endl;
cout << s.str();

Le code suivant me donne une erreur d'exécution, alors que la même chose
avec std::ostringstream fonctionne parfaitement (avec VisualStudio).


Cette classe est faite pour travailler avec des char*, et non des
std::string. Ca fait que la gestion mémoire est plus complexe. N'ayant
pas utilisé cette classe, je ne peut pas vraiment t'aider. Regarde du
côté de la fontion freeze, ça peut être le problème.

--
Loïc

Avatar
Mathieu Peyréga
Frédéric GOURUL a écrit:
Bonjour,

J'utilise depuis peu Devcpp (version 4) et je ne trouve pas <sstream> pour
pouvoir utiliser la classe std::ostringstream. J'ai cherché dans d'autres
include, mais je n'ai pas trouvé la définition de cette classe. La plus
approchante que j'ai trouvée est std::ostrstream (<strstream>), mais
visiblement elle ne fonctionne pas de la même manière.

std::ostrstream s;
s << "texte " << endl;
cout << s.str();

Le code suivant me donne une erreur d'exécution, alors que la même chose
avec std::ostringstream fonctionne parfaitement (avec VisualStudio).

Quelqu'un a-t-il rencontré le problème ou une explication à me fournir?
Merci.


Si tu le peux, je te conseille de passer à une version plus récente de
Dev-Cpp et Mingw...
J'utilise personnellement Dev-Cpp 4.9.8.4 et Gcc-3.3.1 (version Mingw)
et la classe est bien définie. Il vaut d'ailleurs mieux utiliser
<sstream> que <strstream> qui est obsolète me semble-t-il et ne gère pas
automatiquement la désallocation mémoire.

Avatar
Frédéric GOURUL
"Mathieu Peyréga" a écrit dans le message
de news:
Si tu le peux, je te conseille de passer à une version plus récente de
Dev-Cpp et Mingw...
J'utilise personnellement Dev-Cpp 4.9.8.4 et Gcc-3.3.1 (version Mingw)
et la classe est bien définie. Il vaut d'ailleurs mieux utiliser
<sstream> que <strstream> qui est obsolète me semble-t-il et ne gère pas
automatiquement la désallocation mémoire.



Effectivement, avec la dernière version de devcpp (qui est vraiment
excellente au passage), ca va bien mieux.
Merci de votre aide et de ces précisions :)