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().