namespace std {
class ostrstream : public basic_ostream<char> {
public:
ostrstream();
ostrstream(char* s, int n, ios_base::openmode mode = ios_base::out);
virtual ~ostrstream();
strstreambuf* rdbuf() const;
void freeze(bool freezefl = true);
char* str();
int pcount() const;
private:
strstreambuf sb;
};
}
The class
ostrstream
supports the writing of objects of class
strstreambuf. It supplies a
strstreambuf
object to control the associated array object
. For the sake of exposition, the maintained data is presented here as:
- sb, the strstreambuf object.
Effects: Initializes the base class with
ostream(&sb) and
sb with
strstreambuf(). ostrstream(char* s, int n, ios_base::openmode mode = ios_base::out);
Effects: Initializes the base class with
ostream(&sb),
and
sb with one of two constructors:
- If
(mode & app) == 0,
then s shall designate the first element of an array of n elements.The constructor is
strstreambuf(s, n, s).
- If
(mode & app) != 0,
then s shall designate the first element of an array of n elements that
contains an ntbs whose first element is designated by s. The constructor is
strstreambuf(s, n, s + std::strlen(s)).
strstreambuf* rdbuf() const;
Returns: (strstreambuf*)&sb. void freeze(bool freezefl = true);
Effects: Calls
rdbuf()->freeze(freezefl). Returns: rdbuf()->pcount().