Définissez automatiquement Attringstream pour ajouter automatiquement
Question
Comment ajouter des données pour les objets OstringStream? En supposant:
ostringstream oss;
oss << '0x11';
Comment puis-je le définir pour jouer oss << 0x22
du dernier élément connu automatiquement? J'ai lu que j'ai besoin de définir un drapeau, mais comment puis-je le faire?
Éditer: Désolé d'être très très vague à propos de la question. Pro vrai le café s'use. Extension de ma question ci-dessus:
Fait ostringstream oss(osstringstream::app)
Le définit pour ajouter à chaque fois? Mon objectif est de créer une chaîne.
La solution
Il n'est pas précisé ce que le app
Le drapeau fait lorsqu'il est passé à unostringstream
constructeur. Ce drapeau est uniquement pertinent pourofstream
. D'autre part, ostringstream
est Un flux, et à ce titre, les données sont toujours insérées après les données précédemment insérées, à condition que aucune recherche ne se soit produite entre-temps. Il s'agit, après tout, de la définition d'un flux de sortie.
Autres conseils
Lorsque vous créez un stringstream
Comme dans votre premier exemple, il ajoutera par défaut.
C'est la différence entre ate
et app
comme mode ouvert. ate
positionner à la fin après l'ouverture, puis laisser la position d'écriture seule (donc si vous le voulez, vous pouvez écrire n'importe où), app
Assurez-vous que toutes les écrits se font à la fin du flux.
EDIT: Dans la pratique, se comporte différemment pour STRINGSTREAM, alors ne comptez pas sur elle.