Library: Input/output
basic_ostream strstream basic_iostream basic_ios ios_base basic_istream
char_type freeze() int_type |
off_type pcount() pos_type |
rdbuf() str() strstream() |
traits_type ~strstream() |
Class that reads and writes to an array in memory
#include <strstream> namespace std { class strstream; }
The class strstream reads and writes to an array in memory. It uses a private strstreambuf object to control the associated array. It inherits from basic_iostream and therefore can use all the formatted and unformatted output and input functions.
NOTE -- This is a deprecated feature and might not be available in future versions.
namespace std { class strstream : public basic_iostream<char> { public: typedef char char_type; typedef char_traits<char_type> traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; strstream(); strstream(char *s, int n, ios_base::openmode = ios_base::out | ios_base::in); void freeze(int freezefl = 1); int pcount() const; virtual ~strstream(); strstreambuf *rdbuf() const; char *str(); }; }
char_type
The type char_type is a synonym of type char.
int_type
The type int_type is a synonym of type traits_type::in_type.
off_type
The type off_type is a synonym of type traits_type::off_type.
pos_type
The type pos_type is a synonym of type traits_type::pos_type.
traits_type
The type traits_type is a synonym of type char_traits<char>.
strstream();
Constructs an object of class strstream, initializing the base class basic_iostream with the associated strstreambuf object. The strstreambuf object is initialized by calling its default constructor strstreambuf().
strstream(char* s, int n, ios_base::openmode mode = ios_base::out | ios_base::in);
Constructs an object of class strstream, initializing the base class basic_iostream with the associated strstreambuf object. The strstreambuf object is initialized by calling one of two constructors:
If mode & app == 0, calls strstreambuf(s,n,s)
Otherwise calls strstreambuf(s,n,s + ::strlen(s))
virtual ~strstream();
Destroys an object of class strstream.
void freeze(bool freezefl = true);
Calls rdbuf()->freeze(freezefl).
int pcount() const;
Returns rdbuf()->pcount().
strstreambuf* rdbuf() const;
Returns a pointer to the strstreambuf object associated with the stream.
char* str();
Returns rdbuf()->str().
// // strstream.cpp // #include <iostream> // for cout, endl #include <strstream> // for sstream int main () { // create a bi-directional strstream object std::strstream inout; // write out three lines to the stream inout << "Dieses ist die Geschichte eines Mannes.\n" << "C'est l'histoire d'un homme.\n" << "This is the story of a man." << std::endl; char line [80]; // extract the first line inout.getline (line, sizeof line); // output the first line to stdout std::cout << "\nDeutsch:\n" << line; // extract the second line inout.getline (line, sizeof line); // output the second line to stdout std::cout << "\nFrançais:\n" << line; // extract the third line inout.getline (line, sizeof line); // output the third line to stdout std::cout << "\nEnglish:\n" << line << std::endl; // output the contents of the stream object to stdout std::cout << std::endl << inout.str () << std::endl; return 0; } Program Output:
Deutsch: Dieses ist die Geschichte eines Mannes. Francais: C'est l'histoire d'un homme. English: This is the story of a man. Dieses ist die Geschichte eines Mannes. C'est l'histoire d'un homme. This is the story of a man.
char_traits, ios_base, basic_ios, strstreambuf, istrstream, ostrstream
Deprecated. See ISO/IEC 14882:1998 -- International Standard for Information Systems --Programming Language C++, Annex D Compatibility features Section D.7.4