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

ostringstream effacer

65 réponses
Avatar
Ael Rowan Terence
Pardonnez moi d'avance, je sais que le sujet à déjà été abordé, mais j'ai du
mal à comprendre.

Quelle procédure employer pour effacer le contenu d'un ostringstrem ?

10 réponses

1 2 3 4 5
Avatar
JBB
Pardonnez moi d'avance, je sais que le sujet à déjà été abordé, mais j'ai du
mal à comprendre.

Quelle procédure employer pour effacer le contenu d'un ostringstrem ?


A quoi ca sert d'affacer le contenue d'un ostringstream il suffit d'en prendre un autre. non?


Avatar
Cyrille
Pardonnez moi d'avance, je sais que le sujet à déjà été abordé, mais j'ai du
mal à comprendre.

Quelle procédure employer pour effacer le contenu d'un ostringstrem ?


ostringstream oss;
(...)
oss.str(""); // défini le contenu à "", donc le vide.

--
Cyrille

Avatar
Cyrille
Pardonnez moi d'avance, je sais que le sujet à déjà été abordé, mais j'ai du
mal à comprendre.

Quelle procédure employer pour effacer le contenu d'un ostringstrem ?


A quoi ca sert d'affacer le contenue d'un ostringstream il suffit d'en prendre un autre. non?



Pour éviter de créer des objets pour rien, peut-être, dans un contexte
où ça serait un problème.

--
Cyrille


Avatar
Sylvain
JBB wrote on 02/07/2007 18:24:

Quelle procédure employer pour effacer le contenu d'un ostringstrem ?

A quoi ca sert d'affacer le contenu d'un ostringstream il suffit d'en

prendre un autre. non?


hmmm, ça a un rapport avec le non gaspillage des ressources et le
développement (informatique) durable ?

Sylvain.


Avatar
Loïc Joly

Pardonnez moi d'avance, je sais que le sujet à déjà été abordé, mais j'ai du
mal à comprendre.

Quelle procédure employer pour effacer le contenu d'un ostringstrem ?



ostringstream oss;
(...)
oss.str(""); // défini le contenu à "", donc le vide.



Mais ne repositionne pas les flags d'état, ni ceux de formattage.



--
Loïc


Avatar
Ael Rowan Terence
"Cyrille" a écrit dans le message de
news:46894db1$0$21150$
Pardonnez moi d'avance, je sais que le sujet à déjà été abordé, mais
j'ai du


mal à comprendre.

Quelle procédure employer pour effacer le contenu d'un ostringstrem ?


ostringstream oss;
(...)
oss.str(""); // défini le contenu à "", donc le vide.


Merci.


Avatar
James Kanze
On Jul 3, 11:02 am, "Ael Rowan Terence" wrote:
"James Kanze" a écrit dans le message denews:11
On Jul 2, 9:13 pm, Cyrille wrote:

Et ça serait quel contexte ? Si on veut un nouveau flux, la


Mais la question n'était pas "comment faire pour obtenir un
nouveau flux ?" Mais bien comment faire pour effacer un
ostringstream.


Mais ça veut dire quoi, effacer un ostringstream ?

façon la plus simple et la plus naturelle d'en obtenir un, c'est
d'en prendre un nouveau, et non d'essayer de réutiliser un
ancien dont on ne connaît pas trop l'état.


L'état, en l'occurence, je suis sensé le connaitre.


Pourquoi, et comment ?

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
Ael Rowan Terence
"James Kanze" a écrit dans le message de
news:
On Jul 3, 11:02 am, "Ael Rowan Terence" wrote:


Mais ça veut dire quoi, effacer un ostringstream ?



oss << "toto" ;
[....]
oss << "+"
[....]
oss << "titi" ;
[....]

// effacer oss .str ("") ;


L'état, en l'occurence, je suis sensé le connaitre.
Pourquoi, et comment ?



Parce que l'ostringstream ne va pas, de lui même, changer d'état .

Je veux juste, grosso modo, l'utiliser quasiment aussi simplement que
l'exemple donné plus haut.


Avatar
JBB
"James Kanze" a écrit dans le message de
news:
On Jul 3, 11:02 am, "Ael Rowan Terence" wrote:


Mais ça veut dire quoi, effacer un ostringstream ?



oss << "toto" ;
[....]
oss << "+"
[....]
oss << "titi" ;
[....]

// effacer > oss .str ("") ;


L'état, en l'occurence, je suis sensé le connaitre.
Pourquoi, et comment ?



Parce que l'ostringstream ne va pas, de lui même, changer d'état .

Je veux juste, grosso modo, l'utiliser quasiment aussi simplement que
l'exemple donné plus haut.


ostringstream oss;

...
//remettre a zero
oss = ostringstream();

ca le ferait pas ça?



Avatar
James Kanze
On Jul 3, 3:49 pm, "Ael Rowan Terence" wrote:
"James Kanze" a écrit dans le message denews:11
On Jul 3, 11:02 am, "Ael Rowan Terence" wrote:

Mais ça veut dire quoi, effacer un ostringstream ?


oss << "toto" ;
[....]
oss << "+"
[....]
oss << "titi" ;
[....]

// effacer =
oss .str ("") ;


Ce n'est pas vraiment ce que j'entends par « effacer », mais
ce n'était pas ma question. Ma question, c'est ce que tu
entendais par effacer. Remettre à son état initial ? Vider la
chaîne, sans changer quoique ce soit d'autre ? Vider la chaîne
et en libérer la mémoire qui lui est associée ?

On efface les éléments dans une collection, parce que la norme a
choisi ce mot (l'anglais « erase ») pour le faire, mais même
là, je trouve qu'il ne convient pas réelement. Par extension,
dans un flux, on pourrait effacer le contenu (mais en général,
ce n'est pas supporter), l'état (plus d'erreur), les paramètres
du formattage, la liaison avec le streambuf, etc., etc. Un flux,
c'est plus complexe qu'une collection, et il y a beaucoup de
choses qu'on pourrait y effacer. Et dans un sens réel, les
données qu'on y a écrit n'en font pas partie ; une fois
écrites, elles sont ailleurs. C'est l'abstraction d'un flux.

L'état, en l'occurence, je suis sensé le connaitre.
Pourquoi, et comment ?



Parce que l'ostringstream ne va pas, de lui même, changer d'état .


Certaines parties, peut-être bien. Mais surtout, en
programmation, c'est bien que tu ne sois pas obligé à tenir
compte de tout ce qui s'est passé ailleurs, à tout instant.

Je veux juste, grosso modo, l'utiliser quasiment aussi
simplement que l'exemple donné plus haut.


Dans quel but, c'est ça ma question. Pourquoi est-ce que
l'utilisation d'un nouveau flux ne te convient pas ? C'est
quand même la solution « naturelle ».

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34



1 2 3 4 5