namespace std {
class strstream
: public basic_iostream<char> {
public:
using char_type = char;
using int_type = char_traits<char>::int_type;
using pos_type = char_traits<char>::pos_type;
using off_type = char_traits<char>::off_type;
strstream();
strstream(char* s, int n,
ios_base::openmode mode = ios_base::in|ios_base::out);
virtual ~strstream();
strstreambuf* rdbuf() const;
void freeze(bool freezefl = true);
int pcount() const;
char* str();
private:
strstreambuf sb;
};
}
The class
strstream
supports reading and writing from 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
iostream(&sb). strstream(char* s, int n,
ios_base::openmode mode = ios_base::in|ios_base::out);
Effects: Initializes the base class with
iostream(&sb),
and
sb with one of the 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)).
Effects: Destroys an object of class
strstream. strstreambuf* rdbuf() const;
Returns: const_cast<strstreambuf*>(&sb). void freeze(bool freezefl = true);
Effects: Calls
rdbuf()->freeze(freezefl). Returns: rdbuf()->pcount().