la création d'un ostream
Je suis en train de créer un c++ ostream pour des raisons pédagogiques. Mon test sera la création d'un ostream qui agit comme un ofstream serait à l'exception de la place de l'écriture dans un fichier, il écrira à un deque ou un vecteur contenant.
Peut-être pourriez-vous améliorer votre question à se poser une question.
OriginalL'auteur | 2009-02-07
Vous devez vous connecter pour publier un commentaire.
Que c'est de l'éducation, comme vous le dites, je vais vous montrer comment j'allais faire un tel truc. Sinon,
stringstream
est vraiment la voie à suivre.Sonne comme vous voulez créer un streambuf mise en œuvre alors que l'écriture d'un vecteur /deque. Quelque chose comme ceci (la copie d'une autre réponse de moi que ciblée a /dev/null flux):
Vous pouvez l'utiliser comme ceci:
Si vous voulez avoir une deque comme une séquence, vous pouvez le faire:
Ou quelque chose de similaire... eh Bien, je n'ai pas testé. Mais peut-être que c'est aussi une bonne chose - donc, si elle contient encore des bugs, vous pouvez essayer de les corriger.
overflow
prend un caractère à la fois) ou est-il un moyen pour se croisentbasic_streambuf::sputn(const char* s, streamsize n)
?OriginalL'auteur Johannes Schaub - litb
Utiliser std::stringstream
OriginalL'auteur Martin York
Je vais juste remarquer que vous n'avez pas à écrire un ostream-comme la classe, pour que. Vous pouvez utiliser un adaptateur pour atteindre votre objectif.
Par exemple, ce code lit de istream et les inserts de chaque élément dans un vecteur:
OriginalL'auteur Assaf Lavie
Sans plus de détails sur ce que vous voulez faire, il est difficile d'être trop précis, mais vous ne voulez pas créer un nouveau ostream. Ce que vous voulez faire est de créer un nouveau type streambuf, et d'utiliser une ostream.
La easyist chose à faire est d'hériter de std::basic_filebuf<>, et la surcharge de la synchronisation() et débordement() méthodes pour ajouter des éléments à vos structures de données.
OriginalL'auteur KeithB